Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Mysql 查询的设计_Mysql - Fatal编程技术网

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