用于从多个表中检索数据的 Sql 查询

Posted

技术标签:

【中文标题】用于从多个表中检索数据的 Sql 查询【英文标题】:Sql Query for retrieve data from multiple table 【发布时间】: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 中...什么? 【参考方案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 获得空值

【讨论】:

以上是关于用于从多个表中检索数据的 Sql 查询的主要内容,如果未能解决你的问题,请参考以下文章

从数据表中检索信息

检索数据

检索递归 SQL 查询中的特定级别

MySQL基础:检索数据

检索数据

SQL查询从链接表中检索最后一条记录[重复]