web-dev-qa-db-fra.com

Sélection de données dans une autre table à l'aide d'une clé étrangère

J'ai deux tables A et B.

Tableau A

id | name | num

Tableau B

id | date | roll

id dans la table B est une clé étrangère qui se rapporte à l'id dans la table A.

Je veux obtenir le contenu du tableau B où id est donné et aussi avec ces données, j'ai besoin du nom dont l'id est donné dans le tableau A.

J'ai fait une recherche sur Google et j'ai découvert des mots clés étranges à gauche, JOIN mais je ne pouvais pas le comprendre.

J'ai besoin d'obtenir la date et le rouleau du tableau B et le nom du tableau A dans une seule requête. (id est une clé étrangère)

Le plugin que j'utilise malheureusement ne permet pas plusieurs requêtes séparées par des virgules, je dois donc faire les deux SELECTs dans une seule requête.

11
Yashas

La jointure des tables est un principe fondamental des bases de données relationnelles. Dans votre cas, A et B sont liés à la colonne id, ce qui signifie que vous pouvez utiliser une syntaxe similaire à celle-ci:

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

INNER JOIN signifie que vous ne verrez que les lignes où il y a des enregistrements correspondants dans A et B. Si vous voulez toutes les lignes dans A et les enregistrements correspondants dans B, vous pouvez modifier INNER JOIN à LEFT JOIN. Inversement, si vous voulez tous les enregistrements de B et seulement ceux correspondants de A, utilisez RIGHT JOIN. Enfin, si vous avez besoin de tout, des deux tables, correspondant ou non, vous pouvez utiliser FULL JOIN.

19
Daniel Hutmacher

Vous devez joindre ces tables pour obtenir le résultat souhaité.

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

Cette requête renverra tout du tableau B et name du tableau A où l'ID du tableau B est le même que l'ID du tableau A.

2
Edu C.

Pour obtenir le résultat des deux tables associées à la clé étrangère, vous devez joindre les tables.

Trouvez ci-dessous la requête comme vous le souhaitez:

SELECT name, date, roll
FROM A
INNER JOIN B
ON A.id = B.id;
2
Govind

Pour récupérer les données des deux tables associées à une clé étrangère, c'est-à-dire (colonne commune), vous devez joindre les deux tables.

si vous faites correspondre les données des deux tables, utilisez INNER JOIN.

> SELECT A.List_Of_columns,B.List_Of_columns  FROM Table1 AS A   INNER
> JOIN Table2 as B   ON A.ID=B.ID (Here Id is Common in both table).

Si vous souhaitez faire correspondre les données des deux tables avec tous les enregistrements de la table 1, utilisez la jointure gauche au lieu de la jointure intérieure. si vous voulez que tous les enregistrements de table2 utilisent la jointure droite.

0
KD29