Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql select et where sur plusieurs tables (très délicat)

Je pense que vous avez besoin de quelque chose dans ce sens général. Je l'ai fait légèrement différent de votre question. Au lieu d'obtenir le top 10 puis de supprimer des enregistrements. Il obtient les 10 meilleurs enregistrements qui ne seraient pas cachés.

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