【问题标题】:Unable to make join query in mysql or my table structure is wrong无法在 mysql 中进行连接查询或我的表结构错误
【发布时间】:2015-08-11 19:35:46
【问题描述】:


我有三个要加入的表

用户表


角色表


所有者表


租户表

我想获取用户名、名字、姓氏

流程:-
强文本 1.根据roleID加入ROLE TABLE,得到reference table

2. 现在我的问题开始

3. 如果我们从步骤 1

得到的参考表

owner,那么 join with owner table 表 OR
如果引用表是租户,则加入租户表

4. 最后我想要以下数据
id
用户名
firstName
lastName

【问题讨论】:

  • 谢谢戈登林诺夫
  • @Gordon Linoff 是否足够,或者我应该提供更多细节
  • 这个答案是否为您指明了正确的方向:stackoverflow.com/questions/18555603/…
  • @PaulF 谢谢 PaulF,我已经查看了这个问题,但找不到可以帮助我的东西
  • @AnkitArjaria 问题出在 mysql 中,您不能进行条件连接,但是您始终可以进行条件选择,因此您需要预定义连接子句(不是动态的)这是一个小提琴 sqlfiddle.com/#!9/b3574/1,它可以帮助你。

标签: php mysql


【解决方案1】:

根据我给你的答案试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2016-03-08
    • 2015-03-10
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多