【问题标题】:Sql Query for retrieve data from multiple table用于从多个表中检索数据的 Sql 查询
【发布时间】:2013-11-11 10:28:58
【问题描述】:

我有三个表 tb1(Uid,address,LoginTime),tb2(id,Uid,Name),tb3(Id,Uid,Name)。 tb1 有一个主键 Uid .. 其他两个表都包含外键。我需要来自
的所有详细信息 待定1。根据登录时间,我想从 tb2 或 tb3 中检索名称。登录时间是唯一的。它只包含 tb2 或 tb3 两者都不包含...

【问题讨论】:

  • 告诉我们你到目前为止尝试了什么..
  • 您想从 tb2 或 tb3 中检索登录时间,但您不能,因为它在 tb1 中...什么?

标签: mysql sql


【解决方案1】:

你在找这个吗?

SELECT tb1.Uid, Address, LoginTime, COALESCE(tb2.Name, tb3.Name) Name
  FROM tb1 LEFT JOIN tb2
    ON tb1.Uid = tb2.Uid LEFT JOIN tb3
    ON tb1.Uid = tb3.Uid
 WHERE LoginTime = ?

这里是SQLFiddle演示

【讨论】:

  • @user2978704 如果这是您要查找的内容,请考虑将答案发送至 accept
【解决方案2】:

你能详细说明问题的最后几句我得到了什么

     SELECT tb1.*, tb2.Name, tb3.Name 
  FROM tb1 LEFT JOIN tb2
    ON tb1.Uid = t2.Uid LEFT JOIN tb3
    ON tb1.Uid = t3.Uid
 WHERE tb1.LoginTime = ?

它将从 tb1 获取所有数据。但它会针对 tb2.name 和 tb3.name 获得空值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多