我写了一个看起来像这样的查询:
SELECT t.oid AS order_id, t.email
FROM test AS t, `test-count` AS tc
WHERE t.`email` = tc.`email`
输出如下内容:
ID | order_id | email
1 1 a@a.com
2 2 a@a.com
3 3 a@a.com
4 4 a@a.com
5 5 b@a.com
6 6 b@a.com
7 7 b@a.com
8 8 b@a.com
现在,我要做的是选择所有不是原始记录的记录。一个示例是最高ID 1
和ID 5
是原始订单(两个订单都是电子邮件的第一个实例。我想忽略这些订单显示在我的查询中。
我正在尝试追踪并退还部分订单,但不想退还原始订单,只退还重复订单。
答案 0 :(得分:0)
您可以添加一个非IN子句来排除最小结果:
SELECT t.oid AS order_id, t.email
FROM test AS t, `test-count` AS tc
WHERE t.`email` = tc.`email`
AND t.oid NOT IN (SELECT MIN(t2.oid)
FROM test t2
WHERE t2.email = t.email
)