如果子查询没有结果,MySQL应该返回行

时间:2014-09-14 16:33:46

标签: mysql subquery sql-like not-exists

我需要一个查询,我正在努力实现这一目标,但仍然无法解决我的问题。我有一个表和数据存储在一个以逗号分隔的字段中。所以数据看起来像'120,122,145,136'。我打电话给这张桌子table1

另一张表有1300行。我试图获取行,这不包括在table1中。

这是我写的查询。这不能正常工作。如何获得正确的结果?

SELECT a.ddd FROM table2 a 
 WHERE NOT EXISTS 
      (SELECT id 
       FROM table1 
       WHERE data_separated_comma NOT LIKE '%a.ddd%')

我希望有人帮助我。

1 个答案:

答案 0 :(得分:0)

存储逗号分隔关联真的是一个坏主意你应该关心改变你的模式并通过使用保存table1和2之间关系的联结表来规范化它。对于你当前的问题,你可以使用{{{}来重写你的查询。 1}}

find_in_set

Database Normalization