Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL INNER JOIN avec des champs vides possibles

Pour conserver les lignes des galeries sans ID correspondant dans les photos, vous devrez joindre les photos sur les galeries avec LEFT JOIN au lieu de INNER JOIN :

SELECT galeries_id, galeries_title, 
       photos.photos_id, photos.photos_gal_id, photos.photos_link 
FROM galeries 
LEFT JOIN photos 
ON galeries.galeries_id=photos.photos_gal_id 
GROUP BY photos_gal_id

Cela vous donnera :

galeries_id      galeries_title       photos_id       photos_link
     1               blabla              3            test.jpg
     2               bla bla2            NULL         NULL                
     3               etata               5            test.jpg

Et si vous souhaitez remplacer NULL par une chaîne vide, vous pouvez utiliser :

SELECT
  IFNULL(photos.photos_id, ''),
  IFNULL(photos.photos_link, '')