首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server R2中的多表内连接

Server R2中的多表内连接
EN

Stack Overflow用户
提问于 2014-12-19 14:53:19
回答 1查看 137关注 0票数 0

我对INNER JOIN有问题。有三个表CustomerRegular aAnd Master。使用此查询,我只从customer表中获取记录

查询

代码语言:javascript
复制
Select 
    Customer.CustomerId, 
    Customer.RefId, 
    Regular.LicenseId, 
    Master.MasterId, 
    Master.FullName, 
    Master.Profile 
From 
    Customer 
Inner Join 
    Regular on Customer.RefId = Regular.Licenseid 
Inner join 
    master on regular.controlid = master.masterid Or customer.refid = master.masterid

结果

在表Customer中,具有记录M000001和R000001的RefId。为什么结果仅从RefId开始显示R000001?

来自客户主的数据源是..。

结果将包括客户表中的所有行.

任何人都可以解决这个问题并编辑我的查询,以便从customer表中获得两种类型的记录.

EN

回答 1

Stack Overflow用户

发布于 2014-12-19 15:50:45

因此,从这个问题来看,在联接中使用OR条件似乎是个坏主意:

https://stackoverflow.com/a/5901901/3915817

因此,我将直接切换查询。您可以使用外部连接来完成这个任务。

代码语言:javascript
复制
Select Customer.CustomerId, 
       Customer.RefId, 
       Regular.LicenseId, 
       Coalesce(Mast1.MasterId, Mast2.MasterId) AS MasterId,
       Coalesce(Mast1.FullName, Mast2.FullName) AS FullName,
       Coalesce(Mast1.Profile, Mast2.Profile) AS Profile
From Customer 
    Inner Join Regular on Customer.RefId = Regular.Licenseid 
    Left Outer Join master As Mast1 
        on regular.controlid = master.masterid
    Left Outer Join master As Mast2
        on customer.refid = master.masterid
Where (Mast1.masterid Is Not Null
    Or Mast2.MasterId Is Not Null)

或者有一个联合条款

代码语言:javascript
复制
Select Customer.CustomerId, 
       Customer.RefId, 
       Regular.LicenseId, 
       Master.MasterId, 
       Master.FullName, 
       Master.Profile 
From Customer 
    Inner Join Regular on Customer.RefId = Regular.Licenseid 
    Inner Join master on regular.controlid = master.masterid

Union

Select Customer.CustomerId, 
       Customer.RefId, 
       Regular.LicenseId, 
       Master.MasterId, 
       Master.FullName, 
       Master.Profile 
From Customer 
    Inner Join Regular on Customer.RefId = Regular.Licenseid 
    Inner Join master on customer.refid = master.masterid
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27568478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档