mysql 1064 join

sziasztok

SELECT pilotak.pilota_nev, futamok.futamid, eredmenyek.helyezes
FROM pilotak INNER JOIN (futamok INNER JOIN eredmenyek ON futamok.id=eredmenyek.futamid) ON pilotak.id=eredmenyek.pilotaid
WHERE (futamok.futam ='Bahreini') AND (eredmenyek.helyezes)=1)

ezzel a lekérdezéssel mi ehet a baj azt írja a mysql cc, hogy:

[proba] ERROR 1064: You have an error in your SQL syntax near '(futamok INNER JOIN eredmenyek ON futamok.id=eredmenyek.futamid) ON pilotak.id=e' at line 2

lehet hogy a joinolással van baj?nem vagyok nagy pro a témában

Hozzászólások

igen, a joinolassal van a baj.
cuppanj ra a mysql.com/doc-ra, es ha lehet, a valaszt ne egy uj topikba ird.

t

így is lefut
csak azt nem értem, hogy ha kicserélem a feltételt a bahreini-t akkor besz*rik van egy olyan futam nevem hogy Magyar, de nem megy vele, elsőnek az Ausztrál Nagydíjjal próbálkoztam, de gonodoltam nem fexik neki az ékezet meg a szóköz, de nem...a Magyarral sem megy..vajon mért??

szeretnék csinálni egy ponttáblázatot
a kérdésem még annyi, hogy hogy tudnám kiíratni a td-kbe a megfelelő pilóták nevét
elsőbe az elsőt másodikba a másodikat...próbálkoztam hogy bemásolom a php kódot mindegyiktf-hez persze másik feltétlell, de az nem jó
hülyeségeket ír ki, de gondolom, a befejező }-t máshova kellene tennem, mint ahogy az a klsőnél is van, de hova??? :S

$parancs = "SELECT pilotak.pilota_nev, futamok.futam
FROM pilotak INNER JOIN futamok ON futamok.futamid = eredmenyek.futamid
INNER JOIN eredmenyek ON pilotak.pilotaid = eredmenyek.pilotaid
WHERE eredmenyek.helyezes=1";

if (!mysql_query($parancs))
{
print ' error number: '.mysql_errno().' -- error message: '.mysql_error().' -- query: '.$query;
}
else
{
$eredmeny = mysql_query($parancs);
}
//$sor = mysql_fetch_array($eredmeny);

while($sor = mysql_fetch_array($eredmeny))
{
?#
#tr#
#td##? print $sor["futam"]?##/td#
#td#
#?
$parancsm = "SELECT pilotak.pilota_nev, futamok.futam
FROM pilotak
INNER JOIN futamok ON futamok.futamid = eredmenyek.futamid
INNER JOIN eredmenyek ON pilotak.pilotaid = eredmenyek.pilotaid
WHERE eredmenyek.helyezes=2";
$eredmenym = mysql_query($parancsm);
while($sorm = mysql_fetch_array($eredmenym))
{
print $sorm["pilota_nev"];
}

?#
#/td#
#td##? print $sor["pilota_nev"]?##/td#
#td##? print $sor["pilota_nev"]?##/td#
#/tr#

#?
}
?#

Szervusz !

SELECT pilotanev, helyezes FROM pilotak RIGHT JOIN eredmenyek ON pilotak.id=eredmenyek.pilotaid RIGHT JOIN futamok ON futamok.id=eredmenyek.futamid WHERE (futamok.futam ='Bahreini') AND (eredmenyek.helyezes)=1;

elvileg a pilotanev csak a pilotak táblában szerepel (ha más táblába nem tettél ilyen mezőt)

A szintaktikai hiba azért volt, mert helyezés 1-e utáni bezárójel felesleges.

Én hibakeresésre a MySQL Query Browsert (is) használom,sokat segített.

[/fikázás] Az alapnál kissé összetettebb adatbázisnál 5.0.x MySQL-t használok, sok PHP-vel, eddig még csak én hibáztam [fikázás]

A Jenei Imre által írt "Triggerek, tárolt eljárások és függvények alkalmazása MySQL-ben" c könyv egy fejezete szabadon elérhető; ezt átnéztem, azt hiányolom, hogy a sportolóknál nem születési évet (vagy pontos dátumot), hanem életkort adott meg; mondjuk az életkor számítás lehetett volna egy tárolt eljárásra típuspélda {a MySQL 4.x.y user manualjában van egy mintaplélda az állatok életkor számítására - de nem tárolt eljárásként}

CSZ