2016-10-26 1 views
-2

イムこのクエリはダブルネストされたSELECT

SELECT studentid, fName, lName, dob 
FROM Student 
WHERE courseNo IN 
(SELECT courseNo 
FROM Student 
WHERE courseNo = 1001 IN 
(SELECT dob 
FROM Student 
WHERE dob < `1985-09-12`)); 

を動作させるためにトリングしかし、いくつかの理由で、それが空のセットを言っていますか?

すべてのデータは、同じ生徒のテーブルにあります。助けがあれば、dobはYYYY-MM-DD形式になります。

+0

(最下位の選択はスタンドアロンで実行された場合)何かを返しますか? BTW、1985 - 09 - 12 = 1964 ...代わりに "1985-09-12"を試してください。 – jarlh

+0

いいえ何もありません。 '1行目にエラーがあります。 –

+1

JOINについて聞いたことがありますか? – Strawberry

答えて

3

WHERE courseNo = 1001、とINの間で不足している属性があります。 私はあなたが必要とする正確にわからないけど、多分これ?:

SELECT studentid, fName, lName, dob 
FROM Student 
WHERE courseNo IN 
(SELECT courseNo 
FROM Student 
WHERE courseNo = 1001 AND dob IN 
(SELECT dob 
FROM Student 
WHERE dob < '1985-09-12')); 

ようなこともしそうなら、それはあなたに適しているクエリを簡単にする?可能性

SELECT studentid, fName, lName, dob 
FROM Student 
WHERE courseNo = 1001 and dob < '1985-09-12'; 
+0

あなたはそれをしてくれました。ありがとうございました! –

3

私はあなたがこのような何かをしたいと思います:

SELECT studentid,fName,lName,dob From Student 
where courseNo ='1001' and dob<'1985-09-12' 
+0

いいえ、私は '1000 'の別の' courseNo'から年齢を比較しようとしているので –

+0

この場合、またはを使用して試してみましたか? –

+0

両方を行うことができる必要があります。どちらもそうではありません。 –

関連する問題