表具有orer_id和part_id字段。该部分可能以多个顺序存在,例如123、456以000000000001和000000000002存在
| order_id | part_id |
=========================|
| 000000000001 | 00123 |
| 000000000001 | 00456 |
| 000000000001 | 00789 |
| 000000000002 | 00123 |
| 000000000002 | 00456 |
想找出由order_id排序的part_id,但该零件未由提供的order_id以外的其他任何人订购。
例如,通过oerder_id = 000000000001进行查询,并希望查看结果{789}(因为123和456也由其他order_id进行了排序)
答案 0 :(得分:1)
您可以使用NOT EXISTS
和相关子查询,该子查询检查具有相同零件的其他订单。
SELECT t1.part_id
FROM elbat t1
WHERE t1.order_id = '000000000001'
AND NOT EXISTS (SELECT *
FROM elbat t2
WHERE t2.order_id <> t1.order_id
AND t2.part_id = t1.part_id);
答案 1 :(得分:1)
使用子查询
select * from yourtable a
where order_id = '1'
and part_id not in (select part_id from yourtable where order_id <> a.order_id)