2015-11-16 69 views
0

我需要幫助遏制......我有三個表在MySQL:price_tableitem_tabletariff_table與唱片:選擇記錄WHERE ID沒有在表中從MySQL

紀錄item_table

id_item | name_item 
1  | Item A  
2  | Item B  
3  | Item C  
4  | Item D  
5  | Item E 

記錄在tariff_table

id_tariff | name_tariff 
1   | normal  
2   | promo 

紀錄price_table

id_price | id_item | id_tarif 
1  | 1  | 1 
2  | 2  | 1 
3  | 3  | 1 
4  | 4  | 1 
5  | 5  | 1 
6  | 1  | 2 
7  | 2  | 2 

我想選擇id_item沒有。

+0

你到目前爲止嘗試過什麼?這是關於最基本的SQL查詢,我懷疑一些簡單的搜索會提出你需要的。 – miken32

回答

0

你可以做自我加入。

SQLFiddle Demo

這裏是輸出: enter image description here

SELECT T.id_price,item_table.name_item 
FROM 
price_table T 
INNER JOIN item_table ON T.id_item = item_table.id_item 
LEFT JOIN 
(SELECT T1.* 
FROM 
price_table T1 
INNER JOIN price_table T2 ON T1.`id_item`= T2.`id_item` AND T1.`id_tarif` <> T2.`id_tarif`) Dup ON T.`id_item` = Dup.`id_item` 
WHERE Dup.`id_item` IS NULL 

希望這有助於。

+0

我試試你的伎倆但它不工作...謝謝... –

+0

請嘗試我編輯它 –

+0

嘗試鏈接也.. –

0
SELECT P.id_item, I.name_item 
FROM price_table P 
INNER JOIN tariff_table T ON T.id_tariff = p. id_tariff 
INNER JOIN item_table I on I.id_item = p.id_item 
WHERE 
    P.id_tariff != 2 
    AND p.id_item NOT IN 
    (SELECT id_item FROM price_table WHERE id_tariff = 2) 
+0

我上面試過你的把戲,但是MySQL返回一個空的結果,謝謝 –

+0

OK ..... appenmd到我以前的回答 AND p.id_item NOT IN(SELECT id_item FROM price_table WHERE id_tariff = 2) – AntDC