我需要连接三个表的帮助,此图显示了字段和表名称。
从数据库中提取:
voting table
id name closed date votes_up votes_down
4 29192 0 1467441761 32 14
21 14427 0 1467450299 1 0
20 14464 0 1467449751 0 0
14 27345 0 1467447075 0 0
9 27329 0 1467443096 1 0
games table
id id_gamepressure id_gamepressure2 title
256 8228 10759 Yu-Gi-Oh! World Championship 2007
512 2520 9294 Boulder Dash Rocks!
768 10155 12664 SpongeBob vs. The Big One. Beach Party Cook-Off
1024 9587 8484 Nacho Libre
images table
id id_game id_gamepressure filename
30695 10001 173814 10001_deca-sports_11792.jpg
30690 10001 173819 10001_deca-sports_1524.jpg
30692 10001 173817 10001_deca-spoets_3551.jpg
30694 10001 173815 10001_deca-sportss_572.jpg
30693 10001 173816 10001_deca_sports_8866.jpg
30691 10001 113818 10001_deca-sports_9417.jpg
基本上,我希望能够使用“votes_up”字段从“投票表”中找到最受欢迎的游戏,然后将其与“游戏表”匹配,最后与“图像表”链接匹配
我想以列表形式显示它,并按得票最高的游戏排序。
像这样:
- 游戏标题(评级)(图片)
最佳答案
像这样,我不知道您的图像中的实际表名称。或者您想要哪些字段。
SELECT
g.id,
i.id //or whatever fields you want.
FROM
games AS g
INNER JOIN
images AS i
ON
g.id = i.id_game
LEFT JOIN
votes AS v
ON
g.id = v.name
ORDER BY
v.votes_up
DESC
在这种情况下,由于投票已经是一个总和,你不必像我想的那样计算它们,(投票将是每票 1 行,这就是我的想法)
我使用左连接,但我想,因为你想要的是得票最多的游戏,所以这并不重要。
确保 id 以及投票计数都是索引,否则排序会降低性能。
关于php - 连接三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196200/