Just nu i M3-nätverket
Gå till innehåll

ordning i sqlfråga


Martassen

Rekommendera Poster

Kan man inte skriva?
SELECT Efternamn,Förnamn
WHERE ORT="Stockholm"
FROM tbl1;

 

Jag måste alltså skriva?:

SELECT Efternamn,Förnamn
FROM tbl1
WHERE ORT="Stockholm";
 

Länk till kommentar
Dela på andra webbplatser

Ok. Kanon

En sista grej.

 

Jag har tabellerna:

Tblkund
Kundnr
Efternamn
Förnamn
Adress
Tel

tblOrder
Ordernr
Kundnr
Datum

 

tblkund och tblOrder har jag gjort en relation mellan(Kundnr).

 

Om man ska skapa en fråga som hämtar fält ifrån 2 tabeller som är kopplade (Ex tblkund och tblOrder)

Så vill jag ha med följande fält ifrån tblkund:
Kundnr,efternamn,förnamn
Så vill jag även ha med följande fält ifrån tblOrder:
Ordernr,Datum.

En koppling mellan kundnr i tblkund och kundnr i tblorder.

Jag skriver:
 

SELECT tblkund.kundnr, Efternamn, Förnamn, Ordernr, datum

FROM  tblkund

INNER JOIN tblOrder
ON tblkund.kundnr = tblOrder.Kundnr

 

Är det så jag ska skriva? Det verkar funka men tänkte om det är overkill.

.

Länk till kommentar
Dela på andra webbplatser

Precis så ska du skriva!

 

Ännu bättre är att ange tabell för varje kolumn, typ

SELECT tblkund.kundnr, tblkund.Efternamn, tblkund.Förnamn, tblOrder.Ordernr...

 

På så sätt bli SQL-satsen tåligare mot eventuella framtida förändringar av tabellerna.

 

(Man kanske lägger till en kolumn kundnr även i tabellen tblkund. Om man inte angett tabelltillhörighet för kundnr så slutar SQL-satsen att fungera, och i värsta fall står man där med tusentals installarade applikationer världen över som plötsligt slutat fungera.)

Länk till kommentar
Dela på andra webbplatser

Jari Karivainio

Hej!

För att join skall fungera effektivt skall kolumner i tabeller som joinas vara indexerade.

/ Jari

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...