MySQL join 有 2 个条件错误
Posted
技术标签:
【中文标题】MySQL join 有 2 个条件错误【英文标题】:MySQL join with 2 conditions error 【发布时间】:2013-11-20 09:22:36 【问题描述】:我无法弄清楚为什么下面的 mysql 语句(在 php 文件中)会出现 SQL 错误。我认为问题与第二个条件“AGREEDPRODUCTS.productid_corporation 为空”有关。我检查了所用参数的语法是否与数据库中使用的一样正确。对于第二个条件,我还尝试了其他替代方案(例如使用 WHERE,但显然不允许这样做;MySQL join with where clause),但这些都不起作用。
$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";
有什么建议吗?
【问题讨论】:
【参考方案1】:您在该行错过了AND
或其他分隔符:
ON AGREEDPRODUCTS.productid_supplier=EMETERPRODUCTS.productid AGREEDPRODUCTS.producttype='EMETER' AND AGREEDPRODUCTS.productid_corporation is null
^^^
【讨论】:
thnx(两者)。感觉很厚,我忽略了这一点;-(【参考方案2】:ON AGREEDPRODUCTS.productid_supplier=EMETERPRODUCTS.productid AND AGREEDPRODUCTS.producttype='EMETER' AND AGREEDPRODUCTS.productid_corporation is null
您缺少AND
....................... ..................................................^在这里^.
你在这里混淆了一些东西:
喜欢使用 WHERE,但这显然是不允许的
这个问题中的 WHERE 使左/右连接成为内部连接。这就是为什么你必须把它放在加入条件中。 WHERE 子句总是可以的。您也可以将第二个连接条件放在 where 子句中。
【讨论】:
以上是关于MySQL join 有 2 个条件错误的主要内容,如果未能解决你的问题,请参考以下文章
mysql关联left join条件on和where条件的区别及结合coalesce函数
MySQL # left join 语句,对右表的限制条件使用注意问题