2014-01-30 37 views
0

我有一個簡單的查詢Mysql的選擇欄只有一個條件

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' 

我希望我已經清楚,謝謝你的幫助。

+0

[不良習慣踢:使用舊式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style- joins.aspx) - 舊式*逗號分隔的表*樣式列表已停用ANSI - ** 92 ** SQL標準(超過** 20年前**) –

回答

0

這是不可能的,寫一個SELECT column ONLY IF... FROM ..

您還沒有獲得隨機的結果 - 你的查詢執行某種交叉聯接,它加入每一行從表comuni每一行來自表gruppo,其中gruppo.ID_Comuni = 0

如果您需要「select only if ..」 - 命令,則必須編寫存儲過程或sql-script。