我的数据库中有两个表。如果用户想要在他们的个人资料中添加一些额外的地址,“A”表是存储用户主要信息的主表和其他表“B”商店。
两个表的结构(具有完全相同名称的公共列)如下图所示,除了本图中未显示的一些差异列
现在我要显示存储在表A 中以及表B
中的地址我使用了以下查询,但所有这些只返回表B
中的值查询1:
Select t1.(star),t2.(star) from `b` t2 , `a` t1 WHERE t1.emailbc = ?;
查询2:
Select t1.(star),t2.(star) from `a` t1
INNER JOIN `b` t2 ON (a.emailbc=b.emailbc)
WHERE t1.emailbc = ?
我也尝试了自然加入,但这也不起作用。请让我知道解决方案。
答案 0 :(得分:1)
如果要在一列中显示所有地址,但要从两个表中显示,则需要使用UNION
。试试这个:
SELECT *
FROM table1
WHERE emailbc = ?
UNION
SELECT *
FROM table2
WHERE emailbc = ?
答案 1 :(得分:0)
将您的加入查询更改为以下内容。
Select t1.*,t2.* from `a` t1
INNER JOIN `b` t2 ON (t1.emailbc=t2.emailbc)
WHERE t1.emailbc = ?