使用表缩写的mysql更新

时间:2016-04-21 11:03:08

标签: php mysql

前段时间我写了一个PHP脚本并将一些MySQL表名定义为常量。现在我正在添加一些更新,为了简化可读性,我想在UPDATE语句中使用表格缩写。 在SELECT-Statements中我使用它们没有像SELECT * FROM table t INNER JOIN table2 t2......这样的问题,但是在UPDATE-Statement中它一直告诉我找不到我的列名。

这是一个例子:

$sql = $connection->prepare("UPDATE `" . TBLCUSTMANAGMNT . "` m
                            INNER JOIN `" . TBLCUSTOMERS . "` c ON (c.id = m.customerID)
                            SET `c.name` = :cName, `m.posOrder` = :posOrder, `m.posDeliver` = :posDeliver, `m.transactionFirst` = :transactionFirst, `m.transactionLast` = :transactionLast,
                                `m.transactionCount` = :transactionCount, `m.posCount` = :posCount, `m.posParticipation` = :posParticipation, `m.active` = :active
                            WHERE c.id = :id AND c.guid = :guid");

执行后我收到错误告诉我,找不到列c.name。

我是否必须明确地写出完整的表格名称: tableName columnName

提前致谢

2 个答案:

答案 0 :(得分:1)

使用反引号时,您需要执行

`c.name`

而不是

&&

答案 1 :(得分:0)

您正在以错误的方式使用引用。 `c.name` - MySQL会查找列'c.name'。 `c`.`name` - 这是从表'c'获取列'name'的正确方法。