Velge data fra en annen tabell ved hjelp av en fremmednøkkel

Jeg har to tabeller A & B.

Tabell A

id | name | num

Tabell B

id | date | roll

id i tabell B er en fremmednøkkel som er relatert til id i tabell A.

Jeg ønsker å hente innholdet i tabell B der id er oppgitt, og sammen med disse dataene trenger jeg også navnet som id er oppgitt i tabell A.

Jeg googlet og fant ut noen rare nøkkelord LEFT, JOIN, men jeg kunne ikke forstå det.

Jeg trenger å få dato og rulle fra tabell B og navn fra tabell A i en enkelt spørring. (id er en fremmednøkkel)

Plugin jeg bruker tillater dessverre ikke flere spørsmål atskilt med komma, så jeg må gjøre begge SELECT i ett spørsmål.

Sammenføyning av tabeller er et grunnleggende prinsipp i relasjonsdatabaser. I ditt tilfelle er A og B knyttet sammen med kolonnen id, noe som betyr at du kan bruke en syntaks som ligner på denne:

SELECT a.id, a.name, a.num, b.date, b.roll
FROM a
INNER JOIN b ON a.id=b.id;

INNER JOIN betyr at du bare ser rader der det finnes matchende poster i A og B. Hvis du vil ha alle radene i A og matchende poster i B, kan du endre INNER JOIN til LEFT JOIN. Hvis du derimot vil ha alle postene fra B og bare de matchende postene fra A, bruker du RIGHT JOIN. Til slutt, hvis du trenger alt fra begge tabellene, matchende eller ikke, kan du bruke FULL JOIN.

Kommentarer (0)

Du må sammenføye disse tabellene for å få det resultatet du ønsker.

SELECT b.*, a.name FROM tableB AS b INNER JOIN tableA as A ON (b.id=a.id);

Denne spørringen vil returnere alt fra tabell B og name fra tabell A der ID-en fra tabell B er den samme som ID-en fra tabell A.

Kommentarer (0)

For å få resultatet fra de to tabellene som er knyttet til fremmednøkkelen, må du sammenføye tabellene.

Finn spørringen nedenfor slik du vil ha resultatet:

SELECT name, date, roll
FROM A
INNER JOIN B
ON A.id = B.id;
Kommentarer (0)