如何获取表中所有订单的列表,除了(已被引用且类型为-1的订单)
订单表:
id | reference_id | type
----------------------------------
1 | | 1
----------------------------------
2 | | 1
----------------------------------
3 | 1 | -1
----------------------------------
类似于:
list = ArrayList();
if( order.type > 0 ){
if( order.id != other_order.reference_id )
list.add(order)
}
如何在 MySQL 语句中执行此操作?
此语句的结果也是相同的,但使用了 JOIN....等:
select * from orders as a
where a.type > 0 AND not exists
(select * from orders as b where a.id = b.ref_id)
谢谢
最佳答案
这将为您提供那些被引用的记录和那些有效的记录
SELECT *
FROM yourtable A
INNER JOIN yourtable B
ON A.reference_id = B.order_id
WHERE B.reference_type > 0;
关于MySQL JOIN 语句 - 同一个表中的引用字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18446545/