- В каждом альбоме много значков.
- Значок является текущим, если его поле
current <> 0
- Альбом является текущим, если каждый из его значков является текущим.
мне нужно знать: Для каждого альбома, в настоящее время альбом?Подзапрос mySQL, чтобы узнать, есть ли
Я пробовал:
"SELECT *, ".$subquery." AS current FROM tbl_album"
где $subquery
является:
SELECT EXISTS(SELECT 1 FROM tbl_icon2album JOIN tbl_album ON tbl_album.id=tbl_icon2album.albumID WHERE tbl_icon2album.b_current_in_timeproof = 0)
Но это не работает. Я получаю сообщение «1064 У вас возникла ошибка в синтаксисе SQL«
Интересно, что подзапрос отлично работает как автономный. Кроме того, основной запрос отлично работает следующим образом:
SELECT *, 1 AS current FROM tbl_album
Таким образом, если подзапрос работает, а основной запрос работает, почему они не будут работать вместе?
Постскриптум: Работающий решение этой проблемы было представлено в this question.
Что делать, если альбом имеет 0 иконки? Разве это сейчас? – troelskn
, потому что 'SELECT *, SELECT EXISTS (...) FROM ...' далек от правильного синтаксиса, если вы писали все это в одном фрагменте, я думаю, вы бы с большей вероятностью это увидели. – OGHaza
Действительно, синтаксическая ошибка заключалась в том, что мне нужны скобки вокруг подзапроса. Однако правильный результат дал решение Майкла Андерсона –