Dites que j'ai le tableau suivant:
+------------+------+--------+ | reviewerID | item | rating | +------------+------+--------+ | 1 | 1 | 5| | 1 | 2 | 5| | 1 | 3 | 5| | 2 | 4 | 5| | 2 | 1 | 5| | 2 | 2 | 5| +------------+------+--------+
Et je veux get les articles non notés par le critique 1 mais évalués par le critique 2 et vice versa dans une table. La sortie devrait être quelque chose comme ceci:
+------------+------+--------+ | reviewerID | item | rating | +------------+------+--------+ | 1 | 3 | 5| | 2 | 4 | 5| +------------+------+--------+
Vous pouvez countr le nombre de réviseurs des articles (entre ces deux examinateurs) et ne sélectionner que ceux avec un seul critique:
SELECT * FROM mytable WHERE item IN (SELECT item FROM mytable WHERE reviewerID IN (1, 2) GROUP BY item HAVING COUNT(*) = 1)
Voici ce dont vous avez besoin, pour get les résultats souhaités ….
SELECT a.* FROM Reviewer a JOIN ( SELECT DISTINCT item FROM Reviewer GROUP BY item HAVING count(item) < 2) b ON a.item = b.item
J'espère que cela aide!! Bonne chance!!