连接两个表的内部连接错误 - 我假设的语法错误很小

时间:2016-07-03 18:41:52

标签: php mysql join pdo inner-join

我有一张票表和一张顾客表。我正在尝试从故障单表中获取基本信息,只需从customers表中添加clientIisplayName字段,该字段对应于故障单表中的clientID字段。

我还需要验证where子句是否正确,我只希望它返回票证信息,其中ticketstatus不等于“关闭”我应该使用<>或者不等于?

我得到#1064 - 你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“SELECT t.id,t.clientID,c.clientDisplayName,t.ticketTitle t.ticketDueDate t.t”附近使用正确的语法

这是我的查询,我刚开始使用PDO,但我相信我的问题只是加入,因为我也是新手:

$conn->prepare("SELECT 
                    t.id, 
                    t.clientID, 
                    c.clientDisplayName, 
                    t.ticketTitle,
                    t.ticketDueDate,
                    t.ticketStatus,
                    t.ticketProblemType,
                    t.ticketAssignedTech,
                    t.ticketLastModifiedDate FROM `tickets` AS t 
                INNER JOIN `customers` AS c ON t.clientID = c.id 
                WHERE t.ticketStatus <> "closed"
                ORDER BY t.ticketDueDate ASC");

2 个答案:

答案 0 :(得分:2)

,开始的列名后缺少t.ticketTitle

您使用"作为准备工作的字符串,因此您需要将'放在closed左右,这样才不会认为您关闭了原始字符串。例如。 WHERE t.ticketStatus <> 'closed'

答案 1 :(得分:2)

对于您选择的每个列,语句应由,删除。此外,还存在其他语法和语义问题,请参阅错误代码并引用文档。在创建联接之前,我建议单独创建table,以便您可以验证表是否正确,然后执行INNER JOIN。构建查询是一个循序渐进的过程。

在MySQL中比较strings应使用LIKENOT LIKE
MySQL Doc on String Comparison

供参考,如果您需要其他查询语法,请参阅MySql Doc