Sql Query用于从多个表中检索数据

时间:2013-11-11 10:28:58

标签: mysql sql

我有三个表tb1(Uid,地址,LoginTime),tb2(id,Uid,Name),tb3(Id,Uid,Name)。 tb1有一个主键Uid ..其他表都包含外键.i需要来自的所有细节 TB1。基于登录时间,我想从tb2或tb3检索名称..登录时间是唯一的。它只包含tb2或tb3,而不是两者......

2 个答案:

答案 0 :(得分:0)

你在找这个吗?

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 演示

答案 1 :(得分:0)

请你详细说明我得到的问题的最后一句话

     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

的空值