我需要帮助......我在MySQL中有三个表:price_table
,item_table
和tariff_table
,带有记录:
在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
的{{1}}。
答案 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)
答案 1 :(得分:0)
你可以做自我加入。
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
希望这有帮助。