我确实尝试遵循这个答案
但就我而言,我使用 pk id 供同一张表的其他字段使用
样品表:
1. 客户
领域:
Customer_ID、名称、Category_ID、 Realty_Firm
2.类别
领域:
类别 ID,描述
类别的样本数据:
Category_ID | Description
1 | Agent
2 | Broker
客户样本数据:
Customer_ID | Name | Category_ID | Realty Firm
1 | AgentName1 | 1 | 6
2 | AgentName2 | 1 | 6
3 | AgentName3 | 1 | 6
4 | AgentName4 | 1 | 6
5 | AgentName5 | 1 | 7
6 | BrokerName1 | 2 | null
7 | BrokerName2 | 2 | null
注 1: Realty_Firm 字段数据来自 Broker Customer ID(6 和 7 为 Category Broker 的 ID)
注 2: Realty_Firm 字段仅在选择的类别是 Agent(1) 时才需要
问题:我将如何进行按类别对客户进行分组的查询?看起来很容易,但问题是如何将 Realty_Firm 字段加入到同一张表的 Customer_ID 中?
Select Cat.Description, Custom.Name as Broker, Cust.Name as Agent From Customer as Cust
Inner Join Category as Cat ON Cust.Category_ID=Cat.Category_ID
INNER JOIN Customer as Custom ON Custom.Customer_ID=Cust.Realty_Firm
上面的查询对具有不同别名的客户表进行了双重联接,但仅返回具有 Realty_Field 值(经纪人)的行,而不是代理的全部记录属于经纪人。
示例查询输出 (显示可红色记录而不是 ID,以便于参考和示例):
Description | Broker | Agent
Broker | BrokerName1 | AgentName1
Broker | BrokerName1 | AgentName2
Broker | BrokerName1 | AgentName3
Broker | BrokerName1 | AgentName4
Broker | BrokerName1 | AgentName5