sql >> Databáze >  >> RDS >> Mysql

mysql vybrat a kde přes několik tabulek (velmi složité)

Myslím, že potřebujete něco v tomto obecném smyslu. Udělal jsem to trochu jinak než ve vaší otázce. Místo získání top 10 pak odstranění záznamů. Získává 10 nejlepších záznamů, které by nebyly skryty.

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


  1. Na Centos nelze nainstalovat rozšíření php-mysqli

  2. Spouštěče PHP MySQL – Jak předat proměnné ke spouštění?

  3. LAST_INSERT_ID() MySQL

  4. Oracle - řetězcová kombinatorická permutace