我以前在 SQL 中做过很多连接,但这个不想工作 - 我得到一个笛卡尔积,我不知道为什么。我有两张桌子(在这种情况下) - 一张用于约会,另一张用于客户。CustomerId 是客户表的主键,是约会表的外键。
我想要实现的是运行一个查询,显示所有约会以及客户的姓名(存储在客户表中)。
这是我的查询:
SELECT a.AppointmentId
,a.Subject
,a.StartDateTime
,c.CustomerId
,c.FirstName
,c.lastname
FROM shared.Appointment a
INNER JOIN shared.Customer c ON a.CustomerId = c.customerid
WHERE a.BusinessCode = 'bp'
AND StartDateTime > '2013-02-11'
AND a.CustomerId > 0
GROUP BY c.customerid
,a.AppointmentId
,a.Subject
,a.CustomerId
,a.StartDateTime
,c.FirstName
,c.lastname
ORDER BY a.AppointmentId;
结果是一个可怕的笛卡尔积,只有在我开始将名字/姓氏添加到选择部分时才会出现。
谁能看到我做错了什么?