requette outer join

Par driven78, il y a 10 ans


Base de données MySQL

Salut tous le monde,

Petit soucis qui me tarabusque depuis un certain temps deja, mais dont je n'ai pas encore la soluc
donc je me decide à vous poser la question
Merci de vos lumieres;

en partant du principe que j'ai 3 tables:
livres; (id, titre, note)
users; (id, name)
users_livres; (users_id, livres_id, vu)

Si je veux afficher tous les titres de livres qui ont une note >4 mais que l'utilisateur n'a jamais vu

SELECT l.titre FROM livres l LEFT OUTER JOIN users_livres lu ON lu.livres_id = l.id WHERE lu.users_id = ? AND lu.vu <> 1 AND l.livres > 4

evidemment ca, ca marche pas

SELECT l.titre FROM livres l LEFT OUTER JOIN (select * from users_livres WHERE users_id = ? AND vu <> 1)lu ON lu.livres_id = l.id WHERE l.livres > 4

et ca non plus

3 réponses

Grafikart, il y a 10 ans
SELECT * FROM livres LEFT JOIN users_livres ON users_livres.livres_id = livres.id AND users_livres.users_id = <TonUser> WHERE livres.note > 4 AND users_livres IS NULL
driven78, il y a 10 ans

bordel, j'etais pourtant sur de l'avoir utilisé cette requette, mais bon ca marche, dc super, merci grafiart

Ze Nerzhul, il y a 10 ans

Quand je ne sais plus, je regarde là : SQL Joins