Autor Zpráva
turtle
Profil *
Aký je rozdiel medzi:

SELECT * FROM tab1, tab2 WHERE tab1.stlpec=tab2.stlpec
a
SELECT * FROM tab1 JOIN tab2 ON tab1.stlpec=tab2.stlpec

Kedy sa ktorý zápis používa?
Akosi som na to nenašiel odpoveď.
fimmos
Profil
Používají se oba, ten druhý je ale přímo na spojování... Pak ještě můžeš JOIN LEFT, JOIN RIGHT, INNER JOIN atd
llook
Profil
Oba vyjadřují totéž. Říká se tomu "inner join" a používá se to, když chceš vybrat jen ty záznamy, které mají příbuzného v druhé tabulce.

Např.
tab1:

+----+---------+
| id | tab2_id |
+----+---------+
| 1 | 1 |
| 2 | 3 |
| 3 | NULL |
+----+---------+
tab2:
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
+----+

SELECT * FROM tab1 JOIN tab2 ON tab1.tab2_id=tab2.id; vybere jen dva záznamy (1. a 2. z první a k nim přidružený 1. a 3. z druhé tabulky).

Viz http://www.linuxsoft.cz/article.php?id_article=837
Toto téma je uzamčeno. Odpověď nelze zaslat.