webForumDet fria alternativet

Fel i SQL-frågor efter uppdatering till MySQL 5

3 svar · 348 visningar · startad av sabbacus

sabbacusMedlem sedan juli 2002630 inlägg
#1

Tjena. Jag har lagt in MySQL5 på en utvecklingsserver på jobbet, och helt plötsligt slutar vissa SQL-frågor att fungera, frågor som fungerade utan problem på MySQL4. Frågan slutade alltså fungera när man uppdaterade databasmotorn, tabellen och kolumnen finns i databasen. Det är en stor fråga men jag skippar att trimma ner den för sakens skull.

Felmeddelande: Database error: 1054:Unknown column 'customerfield.customerfield_id' in 'on clause'

Denna kolumn återfinns också i själva "selecten" och inte bara i "on", vilket förbryllar ännu mer. Har någon av er stött på problemet tidigare?

MySQL 5.0.18 kör jag på servern.

		SELECT
			[b]customerfield.customerfield_id[/b],
			customertemplate_has_customerfield_visible,
			customertemplate_has_customerfield_index,
			customer_has_customerfield_value,
			customerfield_title,
			customerfield_type,
			customertemplate_has_customerfield_size,
			customertemplate_has_customerfield_height
		FROM
			customerfield,
			customertemplate_has_customerfield,
			customertemplate
		LEFT JOIN
			customer_has_customerfield
		ON
			(
				customer_has_customerfield.customerfield_id=[b]customerfield.customerfield_id[/b]
			AND
				customer_id=65
			)
		WHERE
			[b]customerfield.customerfield_id[/b]=customertemplate_has_customerfield.customerfield_id
		AND
			customertemplate_has_customerfield.customertemplate_id=customertemplate.customertemplate_id
		AND
			customertemplate_has_customerfield.customertemplate_has_customerfield_visible=1
		AND
			customertemplate.customertemplate_id=6
		ORDER BY
			customertemplate_has_customerfield.customertemplate_has_customerfield_index ASC

Observera att det är WebForum som lägger in mellanslag här och var i SQL-frågan för att orden är för långa =)

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Använd bara join-syntax i from, eftersom scope för tabell är enbart inom join.

Flyttas från databashanterare

sabbacusMedlem sedan juli 2002630 inlägg
#3

Kan man få ett lite mer förklarande svar månne? Ovanstående mening säger mig inte så mycket =/
Ber om ursäkt för att jag skrev i fel tråd också. Skyller på att jag var trött :)

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Du har ju

 from a,b left join c on c.c2 = b.c2
 where a.c1 = b1.c1

ungefär. Dvs, i din join så använder du en tabell som inte ingår i den joinen. Skriv

from a join b on a.c1 = b.c1 left join c on b.c2 = c.c2
138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)