2015-11-16 53 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