[英]List all products with no prices in MySQL
該查詢用於利基價格比較網站。
我有2個表格,第一個列出了產品詳細信息,第二個列出了與該產品相關的所有價格。 一種產品可以具有一個或多個價格。
我正在列出所有沒有有效價格的產品,以用於客房清潔。
價格表中可能有一個價格為零的條目,在這種情況下,Prod_price_active將設置為“ 0”。 如果產品確實有價格,則Prod_price_active將設置為“ 1”
表格1
Prod_id
Prod_name
Prod_description
表2
Price_id
Prod_id
Prod_price
Prod_price_active
最簡單的查詢是:
select * from table1
where not exists (
select * from table2
where Prod_price_active = 1
and Prod_id = table1.Prod_id)
這是語句“給我所有沒有有效價格的產品”的SQL版本
假設每個產品都在價格表中,則可以進行inner join
。
select a.Prod_id, a.Prod_name, a.Prod_description
from PRODUCTS a inner join PRICES b
on a.Prod_id = b.Prod_id
where b.Prod_price_active=0
您正在尋找一種執行反連接的方法 :
SELECT table1.* FROM table1
LEFT JOIN table2 USING(prod_id)
WHERE Prod_price IS NULL
OR Prod_price_active = 0
這將僅保留來自table1
(“產品表”)的那些行,這些行在table2
(“價格表”)上沒有相應的條目, 或者將Prod_price_active
設置為0的行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.