MySQL falsche Eintraege selecten

qwerty12309

Grünschnabel
Hallo,
meine Situation ist die Folgende:
Ich habe eine Tabelle, in der mehrseitige Dokumente gespeichert werden, jede Seite ist ein Datensatz und besitzt u.a. eine fortlaufende eigene ID (item_id), eine Seitennummer (page_id) und eine document_id. Die einzelnen Seiten werden durch die document_id zu einem Dokument zusammengefasst und mit page_id in die richtige Reihenfolge gebracht. Jeder item_id ist eine author_id zugeordnet.
Durch einen Fehler im php-Script kam es vor, dass einigen Dokumenten mehrere Autoren zugeordnet waren (weil nur die einzelne Seite den neuen Autor zugeordnet bekam, nicht das gesamte Dokument).
Nun moechte ich herausfinden, welche Dokumente von diesem Fehler betroffen sind, also praktisch die Bedingung: wenn page_id != 1 und author_id != author_id wo page_id = 1
Ich bekomme das nur leider nicht in eine gueltige SQL-Form, ich hoffe sehr, dass ihr mir weiterhelfen koennt.
Vielen Dank im Vorraus!
 
Danke schoen,

verstehe ich das richtig, dass es den Autor eines Dokuments mit einer Liste aller Autoren vergleicht, die auf Seite 1 stehen?
Ich habe es ausprobiert, es brachte aber leider keine Resultate.
Ich kopiere mal zur besseren Anschaulichkeit ein Beispiel aus der Tabelle rein:


| item_id | doc_id | author_id | page_id | post_time | title |
+---------+--------+------------------+------------+-------------------+-----------------------------+
| 147690 | 42072 | ___ 433 | ______ 1 | 1191340668 | Enemy Territory: Quake Wars |
| 147692 | 42072 | ____ 22 | ______ 2 | 1191340503 | NULL |
| 147693 | 42072 | ____ 22 | ______ 3 | 1191340642 | NULL |
 
Ich habe ein bisschen recherchiert und konnte das Problem mit einem Self-Join loesen:

Code:
select a.doc_id, a.author_id, b.author_id from publisher_docs as a inner join publisher_docs as b on a.doc_id = b.doc_id where a.author_id != b.author_id group by doc_id;
 

Neue Beiträge

Zurück