mysql ---选择连接表中某些键为空的结果

时间:2015-04-26 20:53:30

标签: mysql

我在mysql中有2个表

user_titem
item_id     item_name
------------------------
  1            a 
  2            b
  3            c
  5            d

track
--------------------------------------------------------
track_no      member_ID       member_track   track_type
   1              2                1            titem
   2              2                2            titem
   3              2                3            titem
   5              2                13           titem
   6              2                5            titem

在track中,member_track将引用item_id,所以如果我这样做,请选择语句:

SELECT track.track_no ,track.track_type, user_titem.item_name ,user_titem.item_id 
FROM track 
LEFT JOIN user_titem ON track.member_track=user_titem.item_id 
WHERE track.track_type = 'titem' and track.member_ID='2' 

结果是

result
-----------------------------------
track_no    track_type    item_name   item_id
    5          titem         NULL       NULL 

item_name和item_id为null,因为在track_no(5)中,member_track(请参阅item_id)不在user_titem中。

现在的问题是,当track_no的member_track为null时,如何直接在一个select语句中获取track_no。

我想要的结果

result
-----------
track_no   
    5  

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

为什么不试试

SELECT track_no FROM track where member_track NOT IN (SELECT item_id FROM user_titem)

我认为它会给出相同的结果。

答案 1 :(得分:0)

只需在WHERE子句中添加其他检查:

SELECT track.track_no
FROM track
LEFT JOIN user_titem ON track.member_track=user_titem.item_id 
WHERE track.track_type = 'titem' and track.member_ID='2' 
AND user_titem.item_id is null