我正在连接同一个表的两个实例,以查看匹配相同序列号和日期但具有不同ID的记录。目的是识别冲突。我的查询是:
SELECT DISTINCT
t1.id,
t1.status,
t1.date,
t1.serial,
t2.id_2,
t2.status_2,
t2.date_2,
t2.serial_2
FROM table AS t1 INNER JOIN table AS t2 ON t1.serial = t2.serial_2
WHERE t1.date = t2.date_2 AND t1.id <> t2.id_2
ORDER BY t1.date, t1.id;
查询结果如下:
<表类>id 状态日期串行 id_2 status_2 date_2 serial_2 tbody><<tr>01 有效的 01/13/2021 0001 02 有效的 01/13/2021 0001 02 有效的 01/13/2021 0001 01 有效的 01/13/2021 0001 03号有效的 02/10/2021 0005 04 有效的 02/10/2021 0005 04 有效的 02/10/2021 0005 03 有效的 02/10/2021 0005 05 有效的 02/15/2021 0007 06 有效的 02/15/2021 0007 06年有效的 02/15/2021 0007 05 有效的 02/15/2021 0007 表类>
您可以比较id为<而不是><>而不是>
SELECT
t1.id,
t1.status,
t1.date,
t1.serial,
t2.id_2,
t2.status_2,
t2.date_2,
t2.serial_2
FROM table AS t1
INNER JOIN table AS t2
ON t1.serial = t2.serial_2
AND t1.date = t2.date_2
AND t1.id < t2.id_2
ORDER BY t1.date, t1.id;
也可能你不需要distinct
,这取决于你的数据看起来如何。