gpt4 book ai didi

mysql - 跳过 Mysql 中的反向条目

转载 作者:行者123 更新时间:2023-11-30 21:55:18 24 4
gpt4 key购买 nike

我有一个报告表,在产品销售的情况下,我设置了 row_type = 1,在取消的情况下,创建了一个新行并且 row_type = 2,所以获取任一记录查询将是:

select * from table where row_type = 1;

Gives orders 1,2,3,4,5

select * from table where row_type = 2;

Gives orders 3,5

问题是当我使用第一个查询时,我有销售记录,但其中一些也会被取消,并且会有另一行 row_type = 2 所以我想忽略这些记录并且获取没有任何反向条目的行,这可以在一个查询中实现吗?所以:

    select * from table where row_type = 1;

Gives orders 1,2,4 does not include 3,5

我可以在 php 代码中解决 2 个不同的结果集,但只是想知道一个查询是否可以解决问题......!

最佳答案

可能是带有 JOIN 的子 SELECT:

SELECT * FROM table 
LEFT JOIN (SELECT id FROM table WHERE row_type = 2) as cancels
ON table.id = cancels.id
WHERE table.row_type = 1 AND cancels.id IS NULL

这个想法是子选择就像查询中的另一个表一样,您可以LEFT JOIN 到它。然后通过设置条件 cancels.id 为 null,您可以从 table 中排除所有在子选择中有条目的条目(其中包含所有已取消的条目)

假设:

  • id 是销售标识符,销售的条目与取消的条目具有相同的 id

关于mysql - 跳过 Mysql 中的反向条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45469954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com