sql >> Database >  >> RDS >> Mysql

MYSQL INNER JOIN met mogelijke lege velden

Om de rijen van galeries te behouden zonder overeenkomende ID op foto's, moet u foto's op galerijen samenvoegen met LEFT JOIN in plaats van 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

Dit geeft je:

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

En als u NULL wilt vervangen door een lege tekenreeks, kunt u het volgende gebruiken:

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


  1. Hoe de MATCH()-functie werkt in MySQL

  2. Converteer tekstvak naar geheel getal

  3. Indexen maken op meerdere kolommen

  4. MYSQL-fout:1045 (28000):toegang geweigerd voor gebruiker 'root'@'localhost'