SQL查询显示4x记录

Dan*_*erz 1 sql select

以下语句正常工作,但每次显示4次.重复; 我知道这种关系是错误的,但不知道如何修复它?抱歉,如果这很简单,我就错过了.

SELECT Customers.First_Name, Customers.Last_Name, Plants.Common_Name, Plants.Flower_Colour, Plants.Flowering_Season, Staff.First_Name, Staff.Last_Name
FROM Customers, Plants, Orders, Staff
INNER JOIN Orders AS t2 ON t2.Order_ID = Staff.Order_ID
WHERE Orders.Order_Date
BETWEEN  '2011/01/01'
AND  '2013/03/01'
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 6

您正在表之间生成笛卡尔积,因为您没有在任何表之间提供连接语法:

SELECT c.First_Name, c.Last_Name, 
    p.Common_Name, p.Flower_Colour, p.Flowering_Season, 
    s.First_Name, s.Last_Name
FROM Customers c
INNER JOIN Orders o
    on c.customerId = o.customer_id 
INNER JOIN  Plants p
    on o.plant_id = p.plant_id
INNER JOIN Staff s
    ON o.Order_ID = s.Order_ID
WHERE o.Order_Date BETWEEN  '2011/01/01' AND  '2013/03/01'
Run Code Online (Sandbox Code Playgroud)

注意:我猜测连接的列名

这是对连接的一个很好的视觉解释,可以帮助学习正确的语法