选择重复的字段名称

时间:2015-02-03 15:41:05

标签: sql

如果我有以下情况

存储人员的表

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

2 个答案:

答案 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