我做了一些SQL的練習和要求如下問題關於B喜歡的人(即B在Like表中沒有出現ID1),返回A和B的姓名和成績。有關SQL鍛鍊我的SQL查詢(無法找到列)
而且我有一個關於模式的參考:https://lagunita.stanford.edu/c4x/DB/SQL/asset/socialdata.html
和我的查詢如下:
select
h1.name, h1.grade, h2.name, h2.grade
from
highschooler h1, highschooler h2, likes l1, likes l2
where
h1.id in (select id1
from l1
where not exists (select id2 from l1 where id2 = id1))
and h2.id in (select id2
from l2
where not exists (select id2 from l2 where id2 = id1))
的SQL內置的HTML服務器,它總是告訴我說,他們無法找到列l1。我的代碼中是否有邏輯錯誤,並且有人可以告訴它有什麼問題嗎?謝謝!
[踢壞的習慣:使用舊式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old -style-joins.aspx) - 舊式*逗號分隔符在ANSI - ** 92 ** SQL標準(**超過20年**之前)中,ted table * style的列表被替換爲* proper * ANSI'JOIN'語法,並且不鼓勵使用 –
您的查詢很漂亮搞砸了......你的商業案例也不是很清楚..你能解釋一下嗎? –
謝謝marc_s指出了壞習慣。我將避免使用逗號,並嘗試下次使用連接。 –