Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使查询工作_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 无法使查询工作

Php 无法使查询工作,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我有一个数据库,其中包含3个表member、boat、boatType,在下面的方法中,其中两个表受到影响。我想列出在成员上注册的所有船只,但代码有问题,至少SQL有问题,但我怀疑这还不是全部 提前谢谢 boatHandler.php: database.php: 受影响的表格: 船:boatId,boatTypeId,长度,成员ID boatType:boatTypeId,类型 WHERE子句必须列在表引用之后。您必须移动m.memberId=?到表末尾,在FROM和JOIN之后引用如下所示:

我有一个数据库,其中包含3个表member、boat、boatType,在下面的方法中,其中两个表受到影响。我想列出在成员上注册的所有船只,但代码有问题,至少SQL有问题,但我怀疑这还不是全部

提前谢谢

boatHandler.php:

database.php:

受影响的表格: 船:boatId,boatTypeId,长度,成员ID boatType:boatTypeId,类型 WHERE子句必须列在表引用之后。您必须移动m.memberId=?到表末尾,在FROM和JOIN之后引用如下所示:

SELECT b.boatId, b.length, bt.type
FROM boat AS b
      INNER JOIN member AS m
          ON b.memberId = m.memberId

      INNER JOIN boatType AS bt
          ON b.boatTypeId = bt.boatTypeId
WHERE m.memberId = ?
GROUP BY b.boatId
WHERE子句必须列在表引用之后。您必须移动m.memberId=?到表末尾,在FROM和JOIN之后引用如下所示:

SELECT b.boatId, b.length, bt.type
FROM boat AS b
      INNER JOIN member AS m
          ON b.memberId = m.memberId

      INNER JOIN boatType AS bt
          ON b.boatTypeId = bt.boatTypeId
WHERE m.memberId = ?
GROUP BY b.boatId

如您在on子句中所述,只需将“where”替换为“and”:

SELECT b.boatId, b.length, bt.type
              FROM boat AS b
                  INNER JOIN member AS m
                      ON b.memberId = m.memberId
                          AND m.memberId = ?
                  INNER JOIN boatType AS bt
                      ON b.boatTypeId = bt.boatTypeId
                  GROUP BY b.boatId

如您在on子句中所述,只需将“where”替换为“and”:

SELECT b.boatId, b.length, bt.type
              FROM boat AS b
                  INNER JOIN member AS m
                      ON b.memberId = m.memberId
                          AND m.memberId = ?
                  INNER JOIN boatType AS bt
                      ON b.boatTypeId = bt.boatTypeId
                  GROUP BY b.boatId

+1我迟到了2秒..与我的SQL相反,HEHERECT将在group by子句中包含长度和类型。@podiluska抱歉,我没有注意到这一点。但据我所知,mysql确实允许这样做,不像sql server。这解决了OP问题。@MahmoudGamal确实如此。但它不应该:@我在这里听过很多次MYSQL的权威们说MYSQL不是这样的。在select语句中列出没有聚合函数的字段是可以的。+1我迟到了2秒。。与SQL相反,HEHERECT将在group by子句中包含长度和类型。@podiluska抱歉,我没有注意到这一点。但据我所知,mysql确实允许这样做,不像sql server。这解决了OP问题。@MahmoudGamal确实如此。但它不应该:@我在这里听过很多次MYSQL的权威们说MYSQL不是这样的。并且可以在select语句中列出没有聚合函数的字段。