我有一個包含以下內容的MySQL數據庫:查詢返回與組列值值或空
Products
id | name | indexname |units
--------------------------------------------
1 |Mydełko Fa |FA_INDEX |szt.
2 |Ręcznik elegancki |RECZNIK_ELEG |szt.
3 |Płyn do czyszczenia|CZYS_PLYN |l
Prices
id | user_id | product_id | price
-----------------------------------
2 |NULL |1 |21.32
3 |3 |1 |20
4 |NULL |2 |43.21
5 |NULL |3 |12.12
因此,大家可以看到有2產品的價格爲1.我想準備一個查詢,將返回
id | name | indexname |units |price
---------------------------------------------------
1 |Mydełko Fa |FA_INDEX |szt. |20
2 |Ręcznik elegancki |RECZNIK_ELEG |szt. |43.21
3 |Płyn do czyszczenia|CZYS_PLYN |l |12.12
所以我想要的是獲取user_id爲3的所有行,或者如果這樣的行不存在,那麼user_id爲null的那一行。
我試圖
SELECT *
FROM `products` p1
JOIN `prices` p2 ON p1.id = p2.product_id
WHERE `user_id` = 3 OR `user_id` is null
但是和其他一些沒有成功......你能幫忙嗎?
這對我沒有太大意義。您如何知道,如果價格表中的產品價格不止一個,那麼它的正確價格將是與user_id = 3相對應的價格? –
很簡單。對於所有用戶,價格與user_id = null是默認值。 ID爲3的用戶有特別折扣。 – karex
然後我認爲你的設計是錯誤的。我會分開存儲折扣。 –