我有两张MySQL表。一个叫做match_rail和match_complete。
当激活来自bill_number的match_rail时,记录移动到match_complete表,不应该再显示在match_rail表中。
match_rail表每小时刷新一次。因此,如果bill_number表已经存在,则需要确保不显示相同的match_complete。
以下是查询:
SELECT
mr.RAMP
mr.ETA
mr.BILL_NUMBER
// few more columns
FROM
matchback_rail mr
JOIN
matchback_complete mc ON mr.BILL_NUMBER = mc.BILL_NUMBER上面的查询给了我0条记录。它应该给我所有的记录,除了那些存在于两个表中的记录。
不确定我应该使用JOIN还是LEFT JOIN。
发布于 2018-12-03 14:01:50
请尝试以下查询:
SELECT
mr.RAMP
mr.ETA
mr.BILL_NUMBER
// few more columns
FROM
matchback_rail mr
WHERE NOT EXISTS(SELECT 1 FROM matchback_complete
WHERE BILL_NUMBER = mr.BILL_NUMBER)发布于 2018-12-03 13:59:56
您想要使用LEFT JOIN,这会给出mr中的所有记录,即使没有任何连接。然后使用WHERE过滤掉不想要的。
SELECT
mr.RAMP
mr.ETA
mr.BILL_NUMBER
// few more columns
FROM
matchback_rail mr
LEFT JOIN
matchback_complete mc ON mr.BILL_NUMBER = mc.BILL_NUMBER
WHERE mc.BILL_NUMBER IS NULLhttps://stackoverflow.com/questions/53595318
复制相似问题