【问题标题】:MySQL join with 2 conditions errorMySQL join 有 2 个条件错误
【发布时间】: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";

有什么建议吗?

【问题讨论】:

    标签: mysql


    【解决方案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 子句中。

    【讨论】:

      猜你喜欢
      • 2013-06-23
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2020-11-10
      • 2013-08-19
      • 2012-11-13
      相关资源
      最近更新 更多