我有一个简单的查询

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脚本。

09-28 00:43