Inner join

Zdravím.

Prosím o radu, v čem je tento příkaz špatně:

mysql_query("SELECT tab.user,tab.nazev,tab.cena FROM tab WHERE id = ".$id." JOIN tab2 ON tab.user = tab2.user");

Příkaz má vybrat user, nazev, cena ze sloupce "tab", kde id předmětu je intval($_POST['id']), připojit tabulku "tab2", kde user v tabulce "tab" se rovná user v tabulce "tab2".
Špatně je pořadí.

Správné má ten dotaz být takto:

SELECT `tab`.`user`,`tab`.`nazev`,`tab`.`cena` FROM `tab` JOIN `tab2` ON `tab`.`user` = `tab2`.`user` WHERE `tab`.`id` = ".$id."

Případně zkráceně:

SELECT `tab`.`user`,`tab`.`nazev`,`tab`.`cena` FROM `tab` JOIN `tab2` USING (`user`) WHERE `tab`.`id` = ".$id."
Výborně, děkuji za radu. Jen bych se ještě rád zeptal, zda ty zpětné apostrofy jsou důležité ? Nepíši je a dosud jsem se nesetkal s chybou.
SQL syntaxe má pevně daná pravidla a dané pořadí. Pokud něco prohodíš, tak to vyvolá chybu. Takže je třeba si zapamatovat aspoň základní pořadí nejčastěji používaných dotazů.


Apostrofy: Když už se jednou zeptám, tak si zkontroluji, zda byla podána odpověď. Podal jsem ti odpověď, tak proč pokládáš otázku znovu?
Pardon, zapomněl jsem, že jsem to již psal. A děkuji.
S psaním náročnějších SQL dotazů může pomoci syntax Heredoc:
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
Výhodou je, že rozbaluje proměnné a přitom mu nevadí apostrofy ani uvozovky.

U některých webů jedním heredoc generuji kompletní web. Jen je důležité mít nachystán obsah všech vkládaných proměnných. Je to velmi rychlé.