Вытащить столбец дважды из одной таблицы без подзапроса - PullRequest
0 голосов
/ 30 августа 2011

Я использую следующий запрос (в скрипте PHP)

SELECT *,
(SELECT head FROM pages WHERE id='0') AS nullhead
FROM pages WHERE id='$id1' OR id='$id2'

Он извлекает данные для данной страницы, включая значение столбца head.Однако столбец заголовка может иметь значение NULL, и в этом случае вместо него используется значение, для которого id = 0.

Можно ли сделать это без подзапроса в строке 2, при этом используя только один запрос?

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Вы хотите сделать самосоединение здесь (в данном случае, декартово самосоединение)

select a.*, b.head as nullhead
from pages a, pages b
where a.id in ( '$id1', '$id2' )
and b.id = '0'
1 голос
/ 30 августа 2011

Если вы хотите выбрать 0, когда head равно NULL, используйте COALESCE

SELECT *, COALESCE(head, 0)
FROM pages WHERE id='$id1' OR id='$id2'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...