そのクエリを書くことのもう一つの方法はこれです...一般CROSS JOIN
秒で
SELECT DISTINCT
T.name
FROM
instructor AS T
CROSS JOIN
instructor AS S
WHERE
T.salary > S.salary
は悪い考えです。そして、ここで彼らは本当に悪い考えです。 100人のインストラクターがいる場合、4950の異なる組み合わせを評価して99人のインストラクターのユニークなリストを取得します。
- Instructor001が支払われる99人のインストラクターを持って少ない
- Instructor002が支払われる98人のインストラクターを少なく
ている - ...
- 総計4950個の組み合わせ
の場合 - Instructor100は少ない
を支払わされている00インストラクターを持っています1000人のインストラクターが499500の組み合わせを評価し、999人のインストラクターのユニークなリストを取得します。
良いアイデアはそう...
SELECT
i.Name
FROM
instructor i
WHERE
i.salary > (SELECT MIN(salary) FROM instructor)
それとも...
SELECT
i.Name
FROM
instructor i
WHERE
i.Name <> (SELECT Name FROM instructor ORDER BY Salary ASC LIMIT 1)
それとも...
SELECT
i.*
FROM
instructor i
EXCEPT
SELECT
i.*
FROM
instructor i
ORDER BY
Salary ASC
LIMIT 1
だろう、あなたは正しい、そうではありません必要があります(または良いアイデア)そのようにそれを行うには。
クロスジョインです。説明のために添付のリンクを参照してください。http://stackoverflow.com/questions/3538225/how-does-select-from-two-tables-separated-by-a-comma-work-select- from-t1-t2 –