を私は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'の結果を得てから、(a、b、c、d、e)に最も一致するattribIDを持つimageIDを取得することです。 itemID 1-a、c、d itemID 2-a、b、c、itemID 3-a、bを持っているとします。この場合、itemID 1は最も一致するものの、結果には含まれません。 – shinya