SQL加入不喜欢

时间:2011-05-10 21:17:32

标签: mysql join sql-like

我在使用MySQL 5.0。

我基本上有一个List Item表和一个List Title表。对于每个标题,可以有60多个项目,这些项目都是文本。动态地我试图让返回的标题包含人们想要包含或排除的项目。我的查询基本上是:

Select Distinct TitleID from Titles
left join Items on Items.titleID = Titles.titleID
Where Items.Name not like 'Item 2'

如果任何项目的名称类似于“项目2”,那么我不想要TitleID。但是,可能有59个其他名称与标题相关联,因此此查询仍然返回每个可能的TitleID

我怎么写它才能得到我正在寻找的TitleID

2 个答案:

答案 0 :(得分:1)

Select Distinct TitleID from Items
Where TitleID not in (
Select TitleID from Items
Where Name like 'Item 2')

“第2项”中没有通配符,因此没有多大意义。

答案 1 :(得分:0)

SELECT t.TitleID
    FROM Titles t
    WHERE NOT EXISTS(SELECT NULL 
                         FROM Items i 
                         WHERE i.TitleID = t.TitleID 
                             AND i.Name LIKE 'Item 2%')