-1

我无法弄清楚为什么下面的 mySQL 语句(在 php 文件中)会出现 SQL 错误。我认为问题与第二个条件“AGREEDPRODUCTS.productid_corporation 为空”有关。我检查了所用参数的语法是否与数据库中使用的一样正确。我还尝试了关于第二个条件的其他替代方案(例如使用 WHERE,但显然不允许这样做;MySQL join with where 子句)但这些都不起作用。

$sqlquery4 = "SELECT AGREEDPRODUCTS.id,AGREEDPRODUCTS.productid_supplier,EMETERPRODUCTS.productname "
                . "FROM AGREEDPRODUCTS "
                . "INNER JOIN EMETERPRODUCTS "    
                . "ON AGREEDPRODUCTS.productid_supplier=EMETERPRODUCTS.productid AGREEDPRODUCTS.producttype='EMETER' AND AGREEDPRODUCTS.productid_corporation is null "
                . "ORDER BY AGREEDPRODUCTS.productid_supplier";

有什么建议么?

4

2 回答 2

3

AND在该行错过了一个 或其他分隔符:

ON AGREEDPRODUCTS.productid_supplier=EMETERPRODUCTS.productid AGREEDPRODUCTS.producttype='EMETER' AND AGREEDPRODUCTS.productid_corporation is null
                                                            ^^^
于 2013-11-08T11:22:41.260 回答
0
ON AGREEDPRODUCTS.productid_supplier=EMETERPRODUCTS.productid AND AGREEDPRODUCTS.producttype='EMETER' AND AGREEDPRODUCTS.productid_corporation is null

你错过了一个AND.......................... .............................^这里^。

你在这里混淆了一些东西:

喜欢使用 WHERE 但这显然是不允许的

这个问题中的 WHERE 使左/右连接成为内部连接。这就是为什么你必须把它放在加入条件中。WHERE 子句总是可以的。您也可以将第二个连接条件放在 where 子句中。

于 2013-11-08T11:24:27.593 回答