我有一个表格,用于表示订单中的项目,如下所示:
--------------------------------------------------
| id | item_id | item_name | order_id |
--------------------------------------------------
| 1 | 12345 | abcd | 1001 |
--------------------------------------------------
| 2 | 55555 | bbbb | 1001 |
--------------------------------------------------
| 3 | 66666 | cccc | 1001 |
--------------------------------------------------
| 4 | 12345 | abcd | 1002 |
--------------------------------------------------
| 5 | 99999 | yyyy | 1002 |
--------------------------------------------------
| 6 | 12345 | abcd | 1003 |
--------------------------------------------------
| 7 | 98765 | qqgg | 1004 |
--------------------------------------------------
| 8 | 55112 | ffdd | 1004 |
我有一个item_id = 12345的项目,该项目有多个订单。
我想选择符合条件的所有项目:
我尝试这个SQL命令,但我认为我的方法很糟糕。
SELECT item_name
FROM item_order
WHERE order_id IN (
SELECT order_id
FROM item_order
WHERE item_id = 12345
)
结果,我想得到的是:
--------------------------------------------------
| id | item_id | item_name | order_id |
--------------------------------------------------
| 2 | 55555 | bbbb | 1001 |
--------------------------------------------------
| 3 | 66666 | cccc | 1001 |
--------------------------------------------------
| 5 | 99999 | yyyy | 1002 |
--------------------------------------------------
感谢您的建议,如果主题混淆,我们感到抱歉。
答案 0 :(得分:0)
好像你只是错过了另一部分病情:
SELECT item_name
FROM item_order
WHERE order_id IN (
SELECT order_id
FROM item_order
WHERE item_id = 12345
)
AND item_id != 12345