【问题标题】:Select from one table if no records found in another [duplicate]如果在另一个表中没有找到记录,则从一个表中选择 [重复]
【发布时间】:2017-07-17 02:45:51
【问题描述】:

我有两张桌子:

t1
------------
id
user


t2
------------
user_id
item

如果在 t2 中没有找到匹配的记录,我需要从 t1 中进行选择

SELECT * 
FROM t1
LEFT JOIN t2 ON (t1.id = t2.user_id)
WHERE ???

有点卡住了……

【问题讨论】:

  • 如果匹配表中的哪些数据,请指定更喜欢的内容。
  • 如果t2有匹配呢?

标签: mysql


【解决方案1】:
SELECT t1.* 
FROM t1
LEFT JOIN t2 ON  t1.id = t2.user_id 
WHERE t2.user_id IS NULL

【讨论】:

    【解决方案2】:

    您可以使用NOT EXISTS,例如:

    SELECT * FROM t1
    WHERE NOT EXISTS(
        SELECT * FROM t2 WHERE user_id = t1.id
    ); 
    

    这里是 SQL Fiddle

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多