加入三个表

时间:2016-07-05 06:04:36

标签: php mysql

我需要帮助加入三个表,这个图像显示了字段和表名。

从数据库中提取:

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"然后将其与"游戏表#34;进行链接最后使用" images表"

我希望以列表形式显示它,按最高投票游戏排序。

像这样:

  1. 游戏标题(评级)(图片)

1 个答案:

答案 0 :(得分:0)

像这样的东西,我不知道图像中的实际表名。或者你想要哪些领域。

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是索引以及投票计数或排序将会破坏性能。