SQL Join с не нравится - PullRequest
       15

SQL Join с не нравится

2 голосов
/ 11 мая 2011

Я нахожусь на MySQL 5.0.

У меня в основном есть таблица элементов списка и таблица заголовков списков.Для каждого заголовка может быть более 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 s, которые я ищу

Ответы [ 2 ]

1 голос
/ 11 мая 2011
Select Distinct TitleID from Items
Where TitleID not in (
Select TitleID from Items
Where Name like 'Item 2')

Хотя в 'пункте 2' нет подстановочного знака, так что это не имеет особого смысла.

0 голосов
/ 11 мая 2011
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%')
...