Mysql 结合时连接(公式1、公式2、公式3)
使用MySQL,我正在尝试执行一个Mysql 结合时连接(公式1、公式2、公式3),mysql,join,coalesce,Mysql,Join,Coalesce,使用MySQL,我正在尝试执行一个JOIN,类似于将JOIN与或语句一起使用,如: JOIN bioguide ON (bioguide.fulldistrict=house.districtname) OR (left(bioguide.firstname,3)=left(house.first,3) AND bioguide.lastname=house.last) OR (bioguide.fulldistrict=house.districtname AND bioguide.lastn
JOIN
,类似于将JOIN
与或语句一起使用,如:
JOIN bioguide ON (bioguide.fulldistrict=house.districtname) OR
(left(bioguide.firstname,3)=left(house.first,3) AND bioguide.lastname=house.last) OR
(bioguide.fulldistrict=house.districtname AND bioguide.lastname=house.last)
你可能知道,这样做的问题是,如果一堆不同的方法起作用,那么每行会得到多个结果
我希望有一种方法可以使用JOIN
,并像COALESCE
函数那样使用它,本质上说明(即使它不起作用):
如果这样做有效,它将告诉SQL首先在(bioguide.firstname=house.first和bioguide.lastname=house.last)上加入(left(bioguide.firstname,3)=left(house.first,3)和bioguide.lastname=house.last)
,等等
这样的事情可能吗?请告诉我其他信息是否有帮助
谢谢大家 您可以在不同的表中使用不同的匹配项构造查询,然后在选择中使用coalesce()
,以获得所需内容:
select coalesce(bg1.col1, bg2.col2, bg3.col3)
from . . . left outer join
bioguide bg1
on bg1.fulldistrict=house.districtname left outer join
bioguide bg2
on left(bg2.firstname,3)=left(house.first,3) AND bg2.lastname=house.last left outer join
bioguide bg3
on bg3.fulldistrict=house.districtname AND bg3.lastname=house.last
如果其中一个比较有多个匹配项,这仍然会导致多行(如果bioguide
中的同一行匹配所有三个,则重复行没有问题)
如果是这样,则明智地使用分组方式
:
group by <id column that identifies each row in the result set>
分组依据
谢谢!你能想出不创建多个表的方法吗?
group by <id column that identifies each row in the result set>