Sql 内部联接上的重复结果
我已经写了下面的查询,但是我在结果中得到了多个重复的行,请有人看到我哪里出错了吗Sql 内部联接上的重复结果,sql,join,Sql,Join,我已经写了下面的查询,但是我在结果中得到了多个重复的行,请有人看到我哪里出错了吗 use Customers select customer_details.Customer_ID, customer_details.customer_name, metering_point_details.MPAN_ID, Agents.DA_DC_Charge from Customer_Details left join Metering_Point_
use Customers
select customer_details.Customer_ID,
customer_details.customer_name,
metering_point_details.MPAN_ID,
Agents.DA_DC_Charge
from Customer_Details
left join Metering_Point_Details
on customer_details.customer_id = Metering_Point_Details.Customer_ID
left join agents
on customer_details.Customer_ID = agents.customer_id
order by customer_id
这并不重要,但您没有使用
内部联接。无论如何,意外的行表示您的加入
条件不够具体,无法返回预期的输出。如果您的结果完全重复,您可以使用SELECT DISTINCT
,如果您想了解获得这些重复结果的原因,您可以使用SELECT*
查看使用JOIN
条件返回的多行之间的完整详细信息,这将有助于您使您的条件更加具体,或者显示您在联接中使用的某个表中有重复的记录
使用示例数据,我们可以进一步剖析问题,但很有可能,一旦您了解了行重复的原因,您就不再需要它了。可能没有什么问题。取决于您的表结构、示例数据和未显示的预期输出每个字段是否重复?或仅来自特定表的字段。如果是后者,则表明可能意味着您在联接中的表之间只有一对多关系,并且在另一端有多条记录用于另一端的匹配记录。