MYSQL query doesn't work if row doesn't exist in a table SELECT albums.*, MAX(albums.date) AS newDate FROM albums, albumData WHERE albums.userID='$id' AND albums.state='0' AND ( albums.albumID=0 OR albumData.id=albums.albumID AND albumData.state='0' ) GROUP BY albums.albumID, albums.userID ORDER BY newDate DESC SELECT albums.*, MAX(albums.date) AS newDate FROM albums WHERE userID=$id AND albums.state='0' GROUP BY albums.albumID ORDER BY newDate DESC if($quer['id']&&$quer['state']==0||$albumID==0) {//do my stuff here } SELECT albums.* , MAX(albums.date) AS newDate FROM albums LEFT JOIN albumData ON albumData.id = albums.albumID WHERE albums.userID='$id' AND albums.state='0' AND (albums.albumID=0 OR albumData.state='0') GROUP BY albums.albumID , albums.userID ORDER BY newDate DESC