簡體   English   中英

在MySQL中列出所有沒有價格的產品

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM