Autor Zpráva
Richard82
Profil
Ahoj, mám problém s tímto dotazem.
$select = "SELECT         myDate, comment, firstLastName 
                 FROM           comments, users 
                 WHERE        comments.id_user = users.id 
                 AND             id_product='$idProduct' 
                 ORDER BY    comments.id";

$idProduct = 53

comments
id id_user id_product myDate comment
1 22 53 2015-10-15 dsad
2 25 51 2015-10-15 asd
3 25 53 2015-10-15 adsd


Místo jednoho výsledku se mi zobrazí 2 a ještě dvojitě, můžete mi poradit?


Richard Jahnosik 2015-10-15
he product you do and users have to find

Richard Jahnosik 2015-10-15
he product you do and users have to find


Omlouvám se, měl by vyhodit 2 výsledky, ale s jiným jménem a comentem. Nevím proč k tomu nedošlo, když propojení tabulek je správně.
juriad
Profil
Vícekrát se zobrazí kvůli tomu JOINu (ve FROM máš dvě tabulky). Prostě jeden uživatel má dva komentáře.
Jelikož jsi neukázal problematický výstup, nevíme, proč by se měl vypsat jen jeden záznam. Databáze vždy vrátí všechny záznamy, které splňují všechny podmínky.
Richard82
Profil
Asi máš pravdu, ale možná se ptám hloupě, ale selectuji i firstLastName z tabulky users, takže by měla být ve (FROM comments, users).
Musí se zobrazit 2 záznamy, špatně jsem se vyjádřil. Ale druhý záznam má mít jiné jméno a jiný comment.
Vysledek je zde

Richard Jahnosik 2015-10-15
he product you do and users have to find


Richard Jahnosik 2015-10-15
he product you do and users have to find
Joker
Profil
Richard82:
sql dotaz mi vyhodil spatný výsledek
Ne. Prakticky vždycky je problém v tom, že SQL dotaz vrací správný výsledek, ale pokládáte špatný dotaz ;-)

A tenhle problém může být způsobený i výpisem, tj. možná výpis nenačítá správně údaje jednotlivých záznamů.
Richard82
Profil
Výpis je v pořádku, tak potom, kde mám chybu v sql dotazu?


Omlouvám se, moje chyba, výpis byl špatný. :(
Keeehi
Profil
Ještě bych rád podotknul, že ten dotaz, ač správný je neefektivní. Nejdřív vytvoří opravdu velkou tabulku, kterou pak filtrem zredukuje na pár záznamů. Bylo by lepší vytvářet rovnou malu tabulku, čehož se dá dosáhnout víceméně jen prostou změnou klíčových slov.
$select = "SELECT myDate, comment, firstLastName 
                 FROM comments
                 JOIN users 
                 ON  comments.id_user = users.id 
                 WHERE id_product='$idProduct' 
                 ORDER BY comments.id";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: