MYSQL JOINTURE INTERNE avec possibilité de vider les champs
Ok, j'ai un problème avec joindre 2 tables (avec INNER JOIN). Première table contient la liste des catégories (ecc. pour les albums photo, ou de messages de blog), tandis que le deuxième tableau contient "les données"
J'ai essayé comme ceci:
SELECT galeries_id, galeries_title,
photos.photos_id, photos.photos_gal_id, photos.photos_link
FROM galeries
INNER JOIN photos
ON galeries.galeries_id=photos.photos_gal_id
GROUP BY photos_gal_id
Cela me donne juste le résultat, rejoindre mes tables joliment, juste comme je les veux avec un crucial exeption.
Si la table "photos" n'a pas une ligne qui contient "photos_gal_id" (par exemple "2"), qu'il ne reviendra PAS de toute catégorie (galeries_id, galeries_title) pour cette catégorie, même si elle ne egzist dans les galeries de la table.
Il est logique en raison de:
ON galeries.galeries_id=photos.photos_gal_id
Maintenant, j'ai besoin d'adopter cette partie pour me montrer même thoes qui n'ont une ligne de la seconde table
Le résultat que j'essaie de faire est:
galeries_id galeries_title photos_id photos_link
1 blabla 3 test.jpg
2 bla bla2
3 etata 5 test.jpg
J'espère que je vous l'ai expliqué assez bon 🙂
Je vous remercie..
OriginalL'auteur uollaa | 2013-07-30
Vous devez vous connecter pour publier un commentaire.
De conserver les lignes de
galeries
avec aucune ID correspondant dans les photos, vous devez joindre des photos sur les galeries avecLEFT JOIN
au lieu deINNER JOIN
:Cela vous donnera:
Et si vous souhaitez remplacer NULL par une chaîne vide, vous pouvez utiliser:
que faire si je veux juste passer la ligne avec photos_id = null
ajouter
WHERE photos_id IS NULL
OriginalL'auteur Mark
Ne serait-il pas juste être un
Parce que vous voulez les enregistrements reguardless de déterminer si elles sont ou non remplies?
OriginalL'auteur Jacob Goulden