Mysql 从两个不同的表中获得类似的结果,并将它们附加在一起
我想用一个特定的id获取债务人的附加地址 债务人Mysql 从两个不同的表中获得类似的结果,并将它们附加在一起,mysql,sql,Mysql,Sql,我想用一个特定的id获取债务人的附加地址 债务人 id hnr place name 1 22 Amsterdam companyname 2 26 Enschede anotherCompany 传统债务人 id debtors_id hnr place 1 1 12 Almelo 选择类似债务人时的结果。名称%companyname% hnr debtors.id place name 22 1 Amst
id hnr place name
1 22 Amsterdam companyname
2 26 Enschede anotherCompany
传统债务人
id debtors_id hnr place
1 1 12 Almelo
选择类似债务人时的结果。名称%companyname%
hnr debtors.id place name
22 1 Amsterdam companyname
12 1 Almelo companyname
我到目前为止的疑问是:
SELECT * FROM debtors d where d.name LIKE '%companyname%';
但是如何连接其他表以从debtors表中获取附加地址和“默认”地址(默认地址必须是结果集中的第一行)。使用union和inner join
select d.hnr, d.place, d.name
from debtors as d
d.name LIKE '%companyname%'
union
select a.hnr, a.place, c.name
from aditional_debtor as a
inner join debtors as c on a.debtors_id = c.id
and c.name LIKE '%companyname%'
我会选择union all并加入(接近@Prdp解决方案,但我更喜欢加入)
你可以很容易地找到关于join的资源,即使我在你的示例中没有看到任何join,你已经尝试过了吗?
select hnr, place, name
FROM debtors d
where id =1
UNION ALL
select ad.hnr, ad.place, d.name
FROM debtors d join aditional_debtor ad on d.id = ad.debtors_id
where d.id =1