Php mysql查询:如何用station连接多个表

Php mysql查询:如何用station连接多个表,php,mysql,sql,Php,Mysql,Sql,我有下面的mysql查询。但它不起作用 SELECT CASE WHEN isLevel = '1' THEN 'Mahasiswa' WHEN isLevel = '2' THEN 'Dosen' WHEN isLevel = '3' THEN 'Karyawan' ELSE 'Admin' END as level FROM mhs LEFT JOIN if(isLevel=1,'mahasiswa','do

我有下面的mysql查询。但它不起作用

SELECT  CASE
        WHEN isLevel = '1' THEN 'Mahasiswa'
        WHEN isLevel = '2' THEN 'Dosen'
        WHEN isLevel = '3' THEN 'Karyawan'
        ELSE 'Admin'
        END as level 
FROM mhs LEFT JOIN if(isLevel=1,'mahasiswa','dosen') ON username=iduser 
WHERE blabala.
如果“isLevel=1”,我想将mhs与mahasiswa表连接,如果“isLevel=2”将mhs与dosen表连接。。。我应该如何编写查询

请帮帮我。
谢谢。

您不能有条件地加入。但是使用2个左连接来获得这两个表

Select  CASE
    WHEN isLevel = '1' THEN 'Mahasiswa'
    WHEN isLevel = '2' THEN 'Dosen'
    WHEN isLevel = '3' THEN 'Karyawan'
ELSE 'Admin'
END as level 
from mhs 
left join mahasiswa m on m.username=iduser
left join dosen d on d.username=iduser

您可以在此处使用联合声明:

SELECT 'Mahasiswa' AS level
FROM mhs, mahasiswa

WHERE isLevel = 1
AND username = iduser

UNION ALL

SELECT CASE WHEN isLevel = 2 THEN 'Dosen' 
            WHEN isLevel = 3 THEN 'Karyawan' ELSE 'Admin' END AS level
FROM mhs, dosen

WHERE isLevel != 1
AND username = iduser;

尽管这看起来确实是一个困难的方法。从长远来看,最好将isLevel列的翻译放在另一个表中,以便重用。除非你真的很喜欢写CASE语句。

我不相信用这种方式进行条件连接是可能的:为什么不简单地将两者都连接起来呢?