Min situation er som følger:
Jeg har to tabeller i min MySQL database:
forum_threads:
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| header | varchar(255) | NO | | | |
| besked | text | NO | | | |
| user | int(11) | NO | | 0 | |
| time | int(11) | NO | | 0 | |
| visninger | int(11) | NO | | 0 | |
| forum | int(11) | NO | | 0 | |
+-----------+--------------+------+-----+---------+----------------+
forum_readposts:
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| user | int(11) | NO | PRI | 0 | |
| traad | int(11) | NO | PRI | 0 | |
+-------+---------+------+-----+---------+-------+
forum_threads indeholder som navnet antyder trådene i mit forum. Når en bruger går ind og læser en tråd oprettes der en række i forum_readposts som angiver at brugeren har læst denne tråd.
Jeg ønsker nu at finde alle tråde hvor brugeren ikke har været inde og læse (altså hvor der ikke er noget post i forum_readposts med det bruger ID og den tråds id).
Jeg har prøvet med følgende select, men det virkede ikke:
SELECT header, traad FROM forum_threads LEFT JOIN forum_readposts ON forum_threads.id = forum_readposts.traad WHERE forum_readposts.user = 1;Den ovenstående SQL burde efter min forståelse returnere alle posts, såvel ulæste som læste, men den returnerer kun de læste (som hvis jeg havde lavet en normal join).