Mysql 查询的设计
我对这个查询有一个问题。Mysql 查询的设计,mysql,Mysql,我对这个查询有一个问题。其中pl.tourid='$tour\u id'依赖于左连接.TBL\u FOOT\u tour\u PLAYERS.pl on pl.userid=r.winner。由于它是左连接,如果左连接起作用,我如何使WHERE仅起作用 想不出解决办法 谢谢我猜您只想要没有匹配的获胜者的行,或者获胜者有指定的巡回演出的行。在这种情况下,您将使用: SELECT u.username, r.position, r.score, r.winn
其中pl.tourid='$tour\u id'
依赖于左连接.TBL\u FOOT\u tour\u PLAYERS.pl on pl.userid=r.winner
。由于它是左连接,如果左连接
起作用,我如何使WHERE
仅起作用
想不出解决办法
谢谢我猜您只想要没有匹配的获胜者的行,或者获胜者有指定的巡回演出的行。在这种情况下,您将使用:
SELECT u.username,
r.position,
r.score,
r.winner,
t.team
FROM ".TBL_FOOT_TOUR_ROUNDS." r
LEFT JOIN ".TBL_USERS." u
ON u.id = r.winner
LEFT JOIN ".TBL_FOOT_TOUR_PLAYERS." pl
ON pl.userid = r.winner
LEFT JOIN ".TBL_FOOT_TEAMS." t
ON t.id = pl.team
WHERE pl.tourid = '$tour_id' && r.tourid = '$tour_id' && r.round = '$i'
ORDER BY r.position
或者,如果您只想在玩家拥有正确的tourid时链接到该玩家,则将其添加到ON
子句中:
WHERE (pl.tourid IS NULL OR pl.tourid = '$tour_id')
结果会有所不同,可能是你想要的结果。第二个结果对我来说很有用。我不知道你能这么做。非常有用。谢谢你,巴德。
ON pl.userid = r.winner AND pl.tourid = '$tour_id'
SELECT u.username,
r.position,
r.score,
r.winner,
t.team
FROM ".TBL_FOOT_TOUR_ROUNDS." r
LEFT JOIN ".TBL_USERS." u
ON u.id = r.winner
LEFT JOIN ".TBL_FOOT_TOUR_PLAYERS." pl
ON pl.userid = r.winner
AND pl.tourid = '$tour_id'
AND r.tourid = '$tour_id'
AND r.round = '$i'
LEFT JOIN ".TBL_FOOT_TEAMS." t
ON t.id = pl.team
ORDER BY r.position