Php 无法在mysql中进行联接查询,或者我的表结构错误

Php 无法在mysql中进行联接查询,或者我的表结构错误,php,mysql,Php,Mysql,您好我有三个表要加入 用户表角色表 所有者表 租户表 我想得到用户名,名字,姓氏 流程:-strong文本 1.在roleID的基础上,我们可以加入角色表&获取参考表 2.现在我的问题开始了 3.如果我们从步骤1中得到的参考表是所有者,则与所有者表连接,或者如果参考表是租户,则与租户表连接 4.最后,我需要以下数据idusernamefirstNamelastName根据我给你的答案尝试一下: select tt.id, username, fn, ln from usertb ut join

您好
我有三个表要加入

用户表


角色表



所有者表 租户表

我想得到用户名,名字,姓氏

流程:-
strong文本 1.在roleID的基础上,我们可以加入角色表&获取参考表

2.现在我的问题开始了 3.如果我们从步骤1中得到的参考表


所有者,则与所有者表连接,或者
如果参考表是租户,则与租户表连接


4.最后,我需要以下数据
id
username
firstName
lastName

根据我给你的答案尝试一下:

select tt.id, username, fn, ln
from usertb ut
join roletb rt on ut.roleid=rt.id
join 
(
select id ID, 'owner' tbname, firstname FN, lastname LN from ownertb
UNION
select id ID, 'tenant' tbname, firstname FN, lastname LN from tenanttb
) tt ON tt.id=ut.refid AND rt.referenceTable=tt.tbname

感谢Gordon Linoff@Gordon Linoff这足够了吗?或者我应该提供更多的细节这个答案是否为你指明了正确的方向:@PaulF谢谢PaulF,我已经看到了这个问题,但找不到有帮助的东西me@AnkitArjaria问题是在mysql中,你不能有条件连接,但是你总是可以做条件选择,所以你需要预定义连接子句(不是动态的),这里有一个可以帮助你的提琴。