Mysql
 sql >> Database >  >> RDS >> Mysql

mysql select e dove su più tavoli (molto complicato)

Penso che tu abbia bisogno di qualcosa lungo queste linee generali. L'ho fatto in modo leggermente diverso dalla tua domanda. Invece di ottenere i primi 10, rimuovere i record. Ottiene i primi 10 record che non sarebbero nascosti.

SELECT c.ID, c.fromuserid, c.roomid, c.text, u.nickname
FROM chats c
JOIN user u ON c.fromuserid = u.id
where c.roomid = 3 AND user.banned = 0
AND NOT EXISTS(
              SELECT * FROM hide h 
              WHERE h.hideuser = c.fromuserid
              AND orguser = $userid) 
ORDER BY c.ID DESC
LIMIT 0,10