내가 SQL 쿼리 다음 사양을 갖추고 있지만, 이것은 내가 원하는 걸 확실히되지 않습니다 : 내가해야 할 것은하위 쿼리 추가 - SQL 서버 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'의 결과를 얻고 (a, b, c, d, e)에서 가장 일치하는 attribID를 갖는 imageID를 얻는 것입니다. 내가 itemID 1-a, c, d itemID 2-a, b, c, itemID 3-a, b라고합니다. 이 경우 itemID 1이 가장 일치하지만 결과에는 포함되지 않습니다. – shinya