Autor Zpráva
Asd3f
Profil *
Ahoj,

mám dvě tabulky s vazbou 1:N jedná se o tabulku články a o tabulku hodnocení. Hodnotit mohou pouze přihlášení uživatelé, čili se k hodnocení ukládá ID uživatele.

Jak nejůsporněji vybrat články, které uživatel neohodnotil?

Příklad tabulek:
články
-id
-název
-obsah

hodnocení
-id
-uživatel
-článek (vzdálený klíč na tabulku)
-hodnota
Asd3f
Profil *
EDIT: jedná se o mysql
o_O
Profil
SELECT id, nazev FROM clanky WHERE id NOT IN (SELECT clanek FROM hodnoceni WHERE uzivatel=$uid)


Tuším, že by to mělo fungovat.
Asd3f
Profil *
Moc ti děkuji. Ještě mi funguje jedna možnost, takže je srovnám rychlostně
Kajman_
Profil *
Někdy může být rychlejší
SELECT c.id, c.nazev FROM clanky c LEFT JOIN hodnoceni h on c.id=h.clanek and h.uzivatel=42
where h.clanek is null

Pro obě řešení je pak dobré mít nachystané indexy.

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:

0