Skrev ett inläg tidigare ikväll och nu har jag forskat lite till och har följande två SQl-satser varav den ena funkar och den andra inte. Min fråga är varför och hur ska jag göra för att få den andra att fungera?
Fungerar:
SELECT td_stugor.ID FROM td_stugor JOIN td_stugor_faciliteter ON td_stugor.ID=td_stugor_faciliteter.stugorID WHERE td_stugor_faciliteter.faciliteterID IN ( 3 ) GROUP BY td_stugor.ID HAVING COUNT(*) = 1
Fungerar ej:
SELECT td_stugor.ID FROM td_stugor , td_lan, td_kommuner JOIN td_stugor_faciliteter ON td_stugor.ID=td_stugor_faciliteter.stugorID WHERE td_stugor.kommunID=td_kommuner.ID AND td_kommuner.lansbok=td_lan.bokstav AND td_lan.ID=23 AND td_stugor_faciliteter.faciliteterID IN ( 3 ) GROUP BY td_stugor.ID HAVING COUNT(*) = 1
Felmeddelande
[MySQL][ODBC 3.51 Driver][mysqld-5.0.51a-log]Unknown column 'td_stugor.ID' in 'on clause'
D.v.s. när jag blandar in andra tabeller (td_lan, td_kommuner) så vill det sig inte.
Felmeddelandet får jag i ver. 5 men ej i ver.4 av MySQL.
De kolumner som anges i sökvillkoret efter ON måste finnas med i någon av de tabeller som ingår i join-klausulen
select td_stugor.ID
from td_stugor
join td_stugor_faciliteter on td_stugor.ID=td_stugor_faciliteter.stugorID
join td_kommuner on td_stugor.kommunID=td_kommuner.ID
join td_lan on td_kommuner.lansbok=td_lan.bokstav
where t_lan.ID=23
and td_stugor_faciliteter.faciliteterID in (3)
group by td_stugor.ID
having count(*) = 1
268 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf