Twilo: MySQL 5: Bedingte Tabelle

Beitrag lesen

Hallo,

gegeben sind 4 Tabellen
session, users, resellers und pop3

in der Tabelle session gibt es eine Spalte user, welche die ID entweder von der Tabelle users, resellers oder pop3 enthält.

aktuel sieht mein SQL-Statement wie folgt aus:

SELECT  
  CASE  
    WHEN s.`type` = 'user'  
      THEN u.`login`  
    WHEN s.`type` = 'reseller'  
      THEN r.`login`  
    WHEN s.`type` = 'pop3'  
      THEN p.`login`  
    ELSE ''  
  END login  
FROM `sessions` s, `users` u, `resellers` r, `pop3` p  
WHERE `session` = ?  
  AND `ip` = ?  
  AND (  
    (  
      s.`type` = 'user'  
      AND s.`user` = u.`ID`  
    )  
    OR (  
      s.`type` = 'reseller'  
      AND s.`user` = r.`ID`  
    )  
    OR (  
      s.`type` = 'pop3'  
      AND s.`user` = p.`ID`  
    )  
  )  
GROUP BY login;

kann man das irgendwie intelligenter mit INNER JOINs lösen?
also if s.type = 'xxx' dann INNER JOIN xyz

ps. das Tabellenlayout kommt nicht von mir

Server Version: 5.0.45
MySQL-Client-Version: 5.0.51

mfg
Twilo