Php mysql查询:如何用station连接多个表
我有下面的mysql查询。但它不起作用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
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语句。我不相信用这种方式进行条件连接是可能的:为什么不简单地将两者都连接起来呢?