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