如何获取一个MySql表中存在的记录而不是另一个

时间:2013-09-10 13:29:31

标签: mysql sql database join outer-join

我需要编写一个查询,该查询返回一个MySql表中存在的记录,而另一个表中则不存在。在这个例子中,我想要在wafer_log表中存在的所有晶圆都不存在于bt_log表中。

以下是我正在使用的当前查询:

    SELECT wafer_log.wafer, bt_log.id AS blid, wafer_log.id AS wlid 
    FROM bt_log RIGHT OUTER JOIN wafer_log
    ON bt_log.waferid = wafer_log.wafer
    WHERE wafer_log.wafer IS NOT NULL AND bt_log.id IS NULL;

我的想法是从我关心的表格中获取晶圆名称以及两个表格的ID,并在晶圆名称上进行外部连接。从那里,我想看到wafer_log表中晶圆名称不为空的所有结果,并且bt_log中的id为null。

我觉得结果看起来并不合适。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您不需要联接来执行此操作,假设'id'是您可以使用子查询的主键:

SELECT wafer_log.wafer, wafer_log.id AS wlid 
FROM wafer_log
WHERE wafer_log.id NOT IN (SELECT id FROM bt_log);