需要验证查询

Posted

技术标签:

【中文标题】需要验证查询【英文标题】:Need verification for a query 【发布时间】:2016-06-30 05:55:57 【问题描述】:

我有三张桌子

客户:

客户 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';

这是对的还是我完全错了?

【问题讨论】:

mysql 不使用方括号,所以查询对于 MySQL 来说是不正确的。 【参考方案1】:

加盟条件很好。但是,根据 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

【讨论】:

是初始选择 - 选择 FROM [Transactions]、Clients.first name、Clients.last name、Representatives.first name、Represents。姓氏有意义吗? 编辑了答案。看看.. :) 谢谢!但是我想显示 Transactions 表中的所有列...以“select * from transactions”开头然后从其他表中的其余列开始是错误的吗?

以上是关于需要验证查询的主要内容,如果未能解决你的问题,请参考以下文章

针对另一个表的随机 MySQL 查询验证

@Get 控制器和布尔查询中的 NestJS 验证失败(需要数字字符串)

使用 sqitch 中的 mysql 查询验证表不存在

在 RAML 中验证查询参数

在 WebAPI 的查询字符串中传递和验证 OWIN Bearer 令牌

节点 ExpressJS |如何通过自定义查询参数验证