我有一个简单的查询
SELECT
gruppo.*, comuni.Nome as nomecomune
FROM
gruppo, comuni
WHERE
(comuni.ID_Comuni = gruppo.ID_Comuni or gruppo.ID_Comuni ='0')
AND ID_Gruppo='3'
如何从何处了解原因,我需要始终在
ID_Gruppo='3'
处显示一行,但是如果gruppo.ID_Comuni='0'
(因此,如果没有链接),则不需要在SELECT comuni.Nome
列中显示。上面的查询有效,但是如果表(
gruppo.ID_Comuni=0
)之间没有链接,则无论如何都显示(随机?)comuni.Nome
值。因此,我需要执行以下操作:
SELECT
gruppo.*,`
if(gruppo.ID_Comuni <> '0') then also select `comuni.Nome
FROM
gruppo, comuni
WHERE
(comuni.ID_Comuni = gruppo.ID_Comuni OR gruppo.ID_Comuni = '0') AND ID_Gruppo = '3'
希望我已经清楚了,谢谢您的帮助。
最佳答案
写SELECT column ONLY IF... FROM ..
是不可能的
您也不会得到随机结果-您的查询正在执行某种交叉联接,将表comuni
中的每一行连接到表gruppo
中的每一行,其中gruppo.ID_Comuni = 0
。
如果需要“仅在...时选择”命令,则必须编写存储过程或sql脚本。