我有三个表
客户:
客户编号 名 姓氏
交易: 交易ID 客户端ID 代表编号 订单编号 代表:
代表身份证 名 姓氏
我需要显示所有交易信息,包括在特定日期发生的代表姓名和客户姓名。这个查询正确吗?
SELECT *
FROM [Transactions], Clients.first name, Clients.last name, Representatives.first name, Representatives. last name
INNER JOIN [Clients]
ON Transactions.ClientID= Clients.Client ID
INNER JOIN [Representatives]
ON Transactions.RepresntativeID = Representatives.Represntative ID
WHERE Transactions.OrderDate BETWEEN '1996-09-18' AND '1996-11-27';
这是对的还是我都错了?
最佳答案
加入条件很好。但是,根据 OrderDate
列的类型,您可能需要使用 MySQL 的 STR_TO_DATE
函数,例如:
WHERE STR_TO_DATE(`OrderDate`,'%d-%m-%Y')
BETWEEN '1996-09-18' AND '1996-11-27'
更新 我们还需要更新 SELECT 和 FROM 语法:
SELECT t.Trans_ID, c.first name, c.last_name, r.first name, r.last_name
FROM Transactions t INNER JOIN Clients c on t.ClientID= c.Client_ID
INNER JOIN Representatives r
ON t.RepresntativeID = r.Represntative_ID
关于mysql - 需要验证查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000343/