【发布时间】:2015-06-08 10:32:19
【问题描述】:
我有 4 个要加入的表。
CustomersTrafficAverageLive
我想将这些表的连接数据插入到“详细信息”表中。 表之间的关系在这里: 每个 Traffic、Average 和 Live 表都有一个“cid”,它是“Customers”表的主键:
Traffic.cid = Customers.idAverage.cid = Customers.idLive.cid = Customers.id
我写的查询在这里:
INSERT INTO Details
(
cid, Customer_Name, Router_Name,
Traffic_Received,
Average_Received,
Live_Received,
date
)
(
SELECT Customers.id AS cid, Customers.name AS Customer_Name, Traffic.Router_Name,
Traffic.Received,
Average.Received,
Live.Received,
Traffic.date
FROM Customers
INNER JOIN Traffic ON Customers.id=Traffic.cid
INNER JOIN Average ON Customers.id=Average.cid
INNER JOIN Live ON Customers.id=Live.cid
WHERE Traffic.date='2015-06-08'
)
但结果会有重复的行。我将JOIN 更改为LEFT JOIN 和RIGHT JOIN。但结果没有改变。
我应该怎么做才能在Details 表中没有重复的行?
【问题讨论】:
-
4个表中的所有数据都是唯一的。 distinct 没有任何变化。
-
@BayanB 。 . .你说:“但结果会有重复的行。”。有没有重复?使用示例数据和所需结果编辑您的问题。更好的是,使用 SQL Fiddle。
-
@BayanB,这不能保证......
-
请注意,外连接通常返回与内连接相同或更多的行数!
标签: mysql sql join left-join right-join