2016-12-26 65 views
0

查找此查詢:如何寫「或」查詢在SQL

SELECT * 
FROM usre u, item i 
WHERE u.user_id = ... AND i.item_id = .... 

我要讓這樣的查詢,但我分了我的項目,以兩個表!

這意味着我想寫(OR) - >這樣的查詢:

SELECT 
    * 
FROM 
    usre u, drink d OR food f 
WHERE 
    u.user_id =** 
    AND d.drink_id =** 
    OR f.food_id =** 

這個查詢是真的嗎?或者我提出兩個疑問,以及如何?

+0

用「(」和「)」包裝它 –

+0

怎麼樣?像那樣 ? – Reema

+0

$ data =「SELECT * FROM usre u,drink d OR food f WHERE(u.user_id = ** and d.drink_id = **)or f.food_id = **」; –

回答

0

所以,如果我理解正確,你想在一個表中得到兩個表(飲料和食物)的數據?

如果是這樣的點,查詢應該是這樣的:

SELECT * FROM user u 
INNER JOIN drink d ON u.user_id = d.user_id 
INNER JOIN food f ON u.user_id = f.user_id; 

d.user_idf.user_id外鍵。

如果您仍然有問題描述表或指定問題,如果您的意思是別的。

+0

是的,這就是我的意思..謝謝非常❤️ – Reema

0

這不應該工作。 'OR'語句要求左邊是一個布爾值並且轉換爲False來評估右邊的語句。你正在尋找的是'union',你可以使用它來將一個表格的結果與其他表格的結果進行合併。請注意,您從一個表中獲取的列類型也必須與其他表列類型匹配。

請參閱http://dev.mysql.com/doc/refman/5.7/en/union.html

順便說一句,我也認爲你構建你的數據庫的方式是錯誤的。爲什麼在不同的餐桌上有飲料和食物?是的,他們可以有一些獨特的特徵,但爲了簡單起見,你可以把幾乎所有像一個表:價格,成分,成本等

+0

嗯,也許..但我現在不能改變,謝謝 – Reema

0
SELECT * 
FROM user u 
INNER JOIN drink d on d.user_id = u.id 
INNER JOIN food f on f.user_id = u.id 

在這裏,我假設用戶表有主密鑰ID和飲料和食物表有一個外鍵「user_id」