0

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

4

2 回答 2

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

于 2013-11-11T10:33:53.663 回答
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 获得空值

于 2013-11-11T10:41:34.347 回答