The Majkl: Protože se musíš podívat na reálné použití, ne na teoretické konstrukce. Obvykle nevyhledáváš jednoho konkrétního autora, ale všechny autory začínající daným řetězcem.
knihy(id, nazev): (1, 'abc'), (2, 'def')
autori(id, jmeno): (1, 'pepak'), (2, 'themajkl'), (3, 'huh'), 'pepazdepa')
autoriknih(kniha, autor): (1, 1), (1, 4), (2,1), (2, 2)
SELECT *
FROM knihy
JOIN autoriknih ON autoriknih.kniha=knihy.id
JOIN autori ON autori.id=autoriknih.autor
WHERE autori.jmeno STARTING WITH 'pepa'
Pokud to napíšeš takhle (intuitivně, ale nesprávně), dostaneš ve výsledku knihu 1 dvakrát (jednou pro autora pepak a podruhé pro pepazdepa). Proto tvxovi radím, buď distinct nebo subselect, podle situace. |