MySQL запрос возвращает только если количество строк больше нуля - PullRequest
1 голос
/ 22 января 2012

Как изменить этот запрос, чтобы он возвращал только те строки, которые возвращают более 0 строк?

Мне нужно объединить эти два запроса.Мне нужно вернуть строки, где второй запрос возвращает хотя бы 1 строку.

    SELECT albumData.* 
       FROM albumData 
      WHERE userID='$id' 
        AND state='0' 
   ORDER BY date DESC


  SELECT photos.photo 
    FROM albums, photos 
   WHERE albums.userID = '$id' 
     AND albums.photoID = photos.id 
     AND albums.albumID = $albumID 
ORDER BY photos.id DESC LIMIT 6;

РЕДАКТИРОВАТЬ добавить полезную информацию из комментариев:

Таблица albumData хранит уникальные строки для каждого пользователя, для каждого созданного ими фотоальбома,это где я хочу вернуть количество строк с самого начала.Однако я хочу сравнить идентификатор в albumData с идентификатором albumID в таблице альбомов, если число строк с album.albumID = albumData.id больше единицы, затем вернуть эти строки.

Ответы [ 4 ]

0 голосов
/ 22 января 2012
  SELECT albumData.* 
    FROM albumData, albums 
   WHERE albumData.userID='$id' 
     AND albumData.state='0' 
     AND albums.state='0' 
     AND albumData.id=albums.albumID 
GROUP BY albums.albumID 
ORDER BY albums.date DESC
0 голосов
/ 22 января 2012

Ваш запрос кажется ПРАВИЛЬНЫЙ .

Ниже может быть проблема ...

Есть NO записей, которые равны $id AND $albumID. Пожалуйста, сначала проверьте это вручную и повторите запрос ...

Удачи !!!

0 голосов
/ 22 января 2012

следующая попытка .. если я правильно понял проблему

SELECT photos.photo 
FROM albums
INNER JOIN photos on albums.photoID = photos.id 
INNER JOIN albumData ON albumData.id = albums.albumID
WHERE albums.userID = '$id' 
  and albums.albumID = $albumID 
  and albumData.state = '0'
ORDER BY photos.id DESC LIMIT 6;
0 голосов
/ 22 января 2012

Я собираюсь предположить, что вы получаете какую-то ошибку .. если вы пытаетесь предотвратить нулевой набор записей:

используйте что-то вроде этого

$getPhotosq = "
SELECT photos.photo FROM albums, photos 
WHERE albums.userID='$id' 
AND albums.photoID=photos.id 
AND albums.albumID=$albumID 
ORDER BY photos.id DESC LIMIT 6"; 

$rs = mysql_query($getPhotosq);
if($rs) {
 /// DO THE CODE
}
...