首页 > 解决方案 > 从没有一些记录的两个表中选择

问题描述

我有两张桌子:

t1 contain ID_car (unique), name 
t2 contain ID_car(from t1), status (many status records on same ID_car)

我需要以下结果:

All ID_car FROM t1 WITHOUT status = something

我已经尝试过 INNER、LEFT、RIGHT JOIN 并且没有用。我怎样才能做到这一点?非常感谢您的帮助!

更多细节:

t1
------------
ID_car      name
------------------
1           Toyota
2           Honda
3           Mazda
4           Ford


t2
-----------------
ID_car      status
1           ok
1           not_ok
2           ok
4           not_ok

ID_car 3 din 在 t2 中没有任何记录,但我想显示结果

我需要以下结果(来自 t1 的所有汽车,没有汽车状态 not_ok):

the expected result
-----------------
ID_car      status
2           ok
3

更新 2 终于解决了!感谢帮助!这对我有用:

    SELECT * FROM t1 
WHERE t1.ID_auto NOT IN 
(SELECT DISTINCT t1.ID_auto FROM t1, t2 WHERE t1.ID_auto = t2.ID_auto AND t2.category='not_ok')

标签: mysqlsqldatabase

解决方案


SELECT ID_car
FROM t1
  LEFT JOIN
     t2 on t1.ID_car=t2.ID_car
WHERE NOT t2.status='something'

从我的头顶创建,希望它有效!

也许如果您可以发布您编写的查询,也许它们可以向我们展示为什么联接不起作用,因为它应该起作用。


推荐阅读