我的命令:
Select sobe.Id, sobe.Naziv, sobe.Opis, sobe.Kat, (Select Group_CONCAT(studenti.Ime,studenti.Prezime) ImePrezime FROM studentsoba LEFT JOIN studenti ON studentsoba.Id_Sobe=sobe.Id AND studenti.JMBAG = studentsoba.JMBAG) AS ImePrezime from Sobe
这给了我这个错误:
<块引用>1054 - 'on 子句'中的未知列'sobe.Id'
我知道问题出在哪里,但我不知道如何解决它。
我想在此子查询中传递 sobe.Id
:
(Select Group_CONCAT(studenti.Ime,studenti.Prezime) ImePrezime FROM studentsoba LEFT JOIN studenti ON studentsoba.Id_Sobe=sobe.Id AND studenti.JMBAG = studentsoba.JMBAG)
我想查看那个房间里有哪些学生。 soba这个词是房间的意思,JMBAG就像每个学生的个人号码
答案 0 :(得分:1)
尝试将其移至 WHERE
子句:
Select s.Id, sobe.Naziv, s.Opis, s.Kat,
(Select Group_CONCAT(si.Ime, si.Prezime) as ImePrezime
from studentsoba ss LEFT JOIN
studenti si
on si.JMBAG = ss.JMBAG
where ss.Id_Sobe = s.Id
) AS ImePrezime
from Sobe s;
相关子查询应该没问题。我想相关性子句不能在 on
子句中——我通常把它放在 where
子句中。
另请注意,我引入了表别名,以便查询更易于编写和阅读。