07. marts 2006 - 14:42Der er
7 kommentarer og 1 løsning
Hjælp med inner join
Hejsa,
Jeg har lavet følgende udtræk, men synes ikke rigtig jeg kan gennemskue hvordan det skal skrues sammen:
SELECT players.*, clubs.name AS playerclub, countries.name AS playercountry FROM players INNER JOIN clubs ON players.club = clubs.id INNER JOIN players ON players.country = countries.id WHERE id='$id'
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det der skal ske, er at jeg skal bruge data om en spiller (player), hvor hans klub og nationalitet er et nummer som henviser til id-nummeret i henholdsvis en klub-tabel og en nations-tabel, kaldet clubs og countries.
Det simple udtræk er: SELECT * FROM players WHERE id='$id' , men så bliver klub og nationalitet vist som id'et og ikke selve navnet.
Derfor skal de to navne fra henholdsvis "clubs" og "countries" joines til udtrækket, men jeg har problemer med at få det til at virke.
Doh, havde jeg slet ikke set. Men det virker stadig ikke..
Den skriver der er fejl i linie 66:
$query = mysql_query (" SELECT players.*, clubs.name AS playerclub, countries.name AS playercountry FROM players INNER JOIN clubs ON players.club = clubs.id INNER JOIN countries ON players.country = countries.id WHERE id='$id' ORDER BY squadnumber");
// LINIE 66 // while ($r = mysql_fetch_array ($query)) {
Prøv sådan her, så vi kan se hvad fejlen er: $sql = " SELECT players.*, clubs.name AS playerclub, countries.name AS playercountry FROM players INNER JOIN clubs ON players.club = clubs.id INNER JOIN countries ON players.country = countries.id WHERE id='$id' ORDER BY squadnumber";
$query = mysql_query($sql) or die("SQL Fejl: ".mysql_error()."<br>SQL Sætning: ".$sql);
SQL Fejl: Column: 'id' in where clause is ambiguous SQL Sætning: SELECT players.*, clubs.name AS playerclub, countries.name AS playercountry FROM players INNER JOIN clubs ON players.club = clubs.id INNER JOIN countries ON players.country = countries.id WHERE id='' ORDER BY squadnumber
$id var ikke sat, men jeg prøvede at ændre det til $_GET[id] uden det dog ændrede meget i fejlen:
SQL Fejl: Column: 'id' in where clause is ambiguous SQL Sætning: SELECT players.*, clubs.name AS playerclub, countries.name AS playercountry FROM players INNER JOIN clubs ON players.club = clubs.id INNER JOIN countries ON players.country = countries.id WHERE id='2558' ORDER BY squadnumber
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.