我有两个MySQL表。一个称为match_rail
和match_complete
。
操作match_rail中的bill_number时,记录将移至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
。
答案 0 :(得分:1)
您要使用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 NULL
答案 1 :(得分:1)
尝试此查询:
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)