如果我有以下情况
存储人员的表
id_person, name, age (...)
一张存储人物地址的表格
id_address, id_person, city
如果我运行这样的查询
select * from people P left join address A on P.id_person = A.id_person
我在结果集中得到 id_person === null (因为有一个人,但没有记录地址,这很好)。
null来自表地址。是否可以在不执行select field1,field2,field3 ...(批量os字段)的情况下解决这个问题?
实施例
Person
id_person Name
1 John
2 Steve
Address
id_address id_person city
1 1 'AnyCity'
当我运行像这样的查询时
select * from people P left join address A on P.id_person = A.id_person
where P.name = 'Steve'
他的id_person正在返回 null
答案 0 :(得分:3)
你的意思是你只想要人员表中的id_person,而不是地址表(有时候是NULL)?
select p.id_person, p.name, p.age, a.id_address, a.city
from people P left join address A ON P.id_person = A.id_person
答案 1 :(得分:0)
是否可以在不执行select field1,field2,field3 ...(批量os字段)的情况下解决此问题
否 - 您要么使用*,要么识别字段。你可以从一个表中选择所有字段,然后从另一个表中选择:
select P.*, A.address, A.City, ...
from people P
left join address A where P.id_person = A.id_person