я следующий SQL-запрос, но это не совсем то, что я хочу:Добавление к югу запрос - SQL Server 2008
SELECT
TOP (20) Attribs.ImageID AS ItemID
FROM
Attribs
LEFT OUTER JOIN
Items ON Attribs.ImageID = Items.ImageID
WHERE
(attribID IN ('a','b','c','d','e'))
AND (deleted NOT IN (1,2))
AND Attribs.attribID = 'a' AND Attribs.attribID = 'b'
GROUP BY
Attribs.ImageID
ORDER BY
COUNT(DISTINCT attribID) DESC
Что мне нужно для запроса
AND Attribs.attribID = 'a' AND Attribs.attribID = 'b'
, а затем остальную часть WHERE, основанный на результатах запроса.
Можно ли достичь использования подзапроса?
Я использую SQL Server 2008
Спасибо
Если я правильно понял ваш вопрос, я не думаю, что это имеет значение, какое условие имеет приоритет. – deutschZuid
Ваши поисковые запросы противоречивы. Никакая запись не будет иметь значение для атрибута attribID, который является как «a», «b», так и «c», а также «123» или «456» (не говоря уже об обоих!). Можете ли вы уточнить, что вы пытаетесь сделать? –
Joh, Вы правы. Я обновил образец запроса. Я хочу (в данном случае) получить результаты «a» и «b», а затем получить идентификатор изображения, который имеет самый соответствующий атрибут attribID в (a, b, c, d, e). Допустим, у меня есть itemID 1-a, c, d itemID 2-a, b, c, itemID 3-a, b. В этом случае itemID 1 не будет включен в результаты, хотя он имеет наибольшее совпадение. – shinya