Simplifié par exemple, j'ai deux tables, groups
et items
.Comment utiliser une jointure pour interroger deux tables et obtenir toutes les lignes d'une table et les lignes connexes de l'autre?
items (
id,
groupId,
title
)
groups (
id,
groupTitle,
externalURL
)
La requête régulière que je suis va quelque chose comme ceci:
SELECT
i.`id`,
i.`title`,
g.`id` as 'groupId',
g.`groupTitle`,
g.`externalURL`
FROM
items i INNER JOIN groups g ON (i.`groupId` = g.`id`)
Cependant, je dois modifier maintenant, parce que tous les groupes qui spécifient un externalURL
aura pas de dossiers correspondants dans le items
table (puisqu'ils sont stockés en externe). Est-il possible de faire une sorte de rejoindre pour que la sortie ressemble un peu à ceci:
items:
id title groupId
----------------------
1 Item 1 1
2 Item 2 1
groups
id groupTitle externalURL
-------------------------------
1 Group 1 NULL
2 Group 2 something
3 Group 3 NULL
Query output:
id title groupId groupTitle externalURL
---------------------------------------------------
1 Item 1 1 Group 1 NULL
2 Item 2 1 Group 1 NULL
NULL NULL 2 Group 2 something
-- note that group 3 didn't show up because it had no items OR externalURL
Est-ce possible dans une requête SQL?
Je suppose que j'aurais dû écouter plus dans les bases de données 101, hey? À votre santé. – nickf