Существуют ли инструкции MS по организации файла класса? [Дубликат]

Если вы пытаетесь выполнить такой запрос, как показано ниже (найдите все узлы с хотя бы одним вложением), где вы использовали оператор SELECT для создания нового поля, которое фактически не существует в базе данных, и попробуйте использовать псевдоним для этого результата, вы столкнетесь с той же проблемой:

SELECT nodes.*, (SELECT (COUNT(*) FROM attachments 
WHERE attachments.nodeid = nodes.id) AS attachmentcount 
FROM nodes
WHERE attachmentcount > 0;

Вы получите сообщение об ошибке «Неизвестный столбец« attachmentcount »в разделе WHERE».

Решение на самом деле довольно просто - просто замените псевдоним выражением, создающим псевдоним, например:

SELECT nodes.*, (SELECT (COUNT(*) FROM attachments 
WHERE attachments.nodeid = nodes.id) AS attachmentcount 
FROM nodes 
WHERE (SELECT (COUNT(*) FROM attachments WHERE attachments.nodeid = nodes.id) > 0;

. Вы все равно получите возвращаемый псевдоним, но теперь SQL не должен биться с неизвестным псевдоним.

0
задан Daniel Mann 17 August 2013 в 19:28
поделиться