Gå til innhold

LØST: LEFT JOIN: Funker med MySQL 5.0 men ikke 4.1


Anbefalte innlegg

  	$result = mysql_query("SELECT * FROM main LEFT JOIN tabell_1 USING (user_id) LEFT JOIN tabell_2 USING (user_id) LEFT JOIN tabell_3 USING (user_id) WHERE username = '$user_name'");
   	if(!$result) {
   	echo 'Error: ' . mysql_error();
   	exit;
 	}
 	$fetch_info = mysql_fetch_assoc($result);

 

Har sittet og kodet en del paa laptop'n min i det siste, og har XAMPP installert med MySQL 5.0. Har foelgende kode i et script og det virker lokalt, men da jeg lastet det opp til min webserver som kjoerer MySQL 4.1 faar jeg foelgende: "Error: Column 'username' in where clause is ambiguous".

 

Jeg har tre tabeller med forskjellig info, og jeg vil ta ut informasjon tilhoerende $user_name fra alle tre tabeller. Dog vil jeg gjoere det i bare en query istedenfor tre, derav LEFT JOIN. Litt fersk paa MySQL og PHP saa er ikke sikker paa om dette er rette maaten og gjoere det paa i 5.0, og det virker absolutt ikke paa 4.1.

 

Noen som har et tips om hvordan dette kan fikses saa det virker paa baade 4.1 og 5.0?

 

 

EDIT: Byttet ut kode med foelgende:

$result = mysql_query("SELECT * FROM tabell_1 LEFT JOIN tabell_2 ON tabell_1.user_id=tabell_2.user_id LEFT JOIN tabell_3 ON tabell_2.user_id=tabell_3.user_id");
   	if(!$result) {
   	echo 'Error: ' . mysql_error();
   	exit;
 	}
 	$fetch_info = mysql_fetch_assoc($result);

 

Fungerer baade paa 4.1 og 5.0.

Endret av frodeaa
Lenke til kommentar
Videoannonse
Annonse
SELECT * FROM main LEFT JOIN tabell_1 USING (user_id) LEFT JOIN tabell_2 USING (user_id) LEFT JOIN tabell_3 USING (user_id) WHERE username = '$user_name'

 

"Error: Column 'username' in where clause is ambiguous".

 

Dette er vel strengt tatt et SQL-problem og ikke PHP... anywho...

Den feilmeldinga betyr at navnet 'username' er brukt som navn på flere rader i flere tabeller.

 

TABLE1

ID

username

password

 

 

TABLE2

ID

post

forum

username

 

så hvis du for dette eksemplet skriver

 

SELECT * FROM TABLE1, TABLE2 WHERE username = 'foo'

 

vil du få nøyaktig den feilmeldinga du har fått.

 

Løsningen er å spesifisere hvilken username du ønsker å sjekke mot. For mitt eksempel:

 

SELECT * FROM TABLE1, TABLE2 WHERE TABLE2.username = 'foo'

Lenke til kommentar
SELECT * FROM main LEFT JOIN tabell_1 USING (user_id) LEFT JOIN tabell_2 USING (user_id) LEFT JOIN tabell_3 USING (user_id) WHERE username = '$user_name'

 

"Error: Column 'username' in where clause is ambiguous".

 

Dette er vel strengt tatt et SQL-problem og ikke PHP... anywho...

 

 

Sant nok, dog der er ingen kategori for MySQL... Kunne vel kanskje putta den i Generell programmering...

 

Den feilmeldinga betyr at navnet 'username' er brukt som navn på flere rader i flere tabeller.

 

TABLE1

ID

username

password

 

 

TABLE2

ID

post

forum

username

 

så hvis du for dette eksemplet skriver

 

SELECT * FROM TABLE1, TABLE2 WHERE username = 'foo'

 

vil du få nøyaktig den feilmeldinga du har fått.

 

Løsningen er å spesifisere hvilken username du ønsker å sjekke mot. For mitt eksempel:

 

SELECT * FROM TABLE1, TABLE2 WHERE TABLE2.username = 'foo'

6568333[/snapback]

 

Riktig. Der er en rad i hver tabell kalt username, og jeg vil ha all info fra hver rad i alle tre tabeller... Dersom jeg spesifiserer bare en tabell, vil den da plukke info fra de andre to tabellene med samme ID?

Lenke til kommentar
SELECT * FROM main LEFT JOIN tabell_1 USING (user_id) LEFT JOIN tabell_2 USING (user_id) LEFT JOIN tabell_3 USING (user_id) WHERE username = '$user_name'

 

"Error: Column 'username' in where clause is ambiguous".

 

Dette er vel strengt tatt et SQL-problem og ikke PHP... anywho...

 

 

Sant nok, dog der er ingen kategori for MySQL... Kunne vel kanskje putta den i Generell programmering...

 

6568414[/snapback]

Uhmm ... kanskje databaser?

Endret av Ernie
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...