Php 通过两个ID对查询搜索进行排序,然后合并
我基本上已经有了:Php 通过两个ID对查询搜索进行排序,然后合并,php,mysql,sql,Php,Mysql,Sql,我基本上已经有了: SELECT APPID, ( SELECT COUNT(*) FROM table WHERE APPID = alias.APPID AND end > (php time()) AS COUNT ) FROM table AS alias GROUP BY APPID ORDER BY count DESC LIMIT 5 我用它来排列APPID的入口最多,但现在我有一个问题 我有两张桌子,分别是来自两个
SELECT APPID,
(
SELECT COUNT(*)
FROM table
WHERE APPID = alias.APPID
AND end > (php time())
AS COUNT
)
FROM table AS alias
GROUP BY APPID
ORDER BY count DESC
LIMIT 5
我用它来排列APPID的入口最多,但现在我有一个问题
我有两张桌子,分别是来自两个不同api的games\u steam和games\u other。为了在它们之间创建链接,我在games\u other中添加了一个steamappid列。由于一个游戏的两个表在该排名搜索中可以有两个APPID,是否仍有搜索steam_games.APPID在games_other.steamappid中出现的位置,并且在排名中,merge merge to games_other.APPID是这些相关的主ID
这有意义吗
例如:
游戏与其他
.# | APPID | NAME | steamappid |
----------------------------------------;
1 | 440 | game 1 | NULL |
2 | 654 | game 2 | S423 |
3 | 435 | game 3 | S35 |
蒸汽游戏
.# | APPID | NAME |
-----------------------;
1 | S35 | game 3 |
2 | S86 | game 4 |
3 | S423 | game 2 |
条目
ID | APPID
0 | S35
1 | 435
2 | S35
2 | 435
3 | 440
4 | 654
5 | 654
5 | S423
0 | S86
因此,当他们根据条目进行排名和排序时,会显示:
APPID | COUNT
435 | 4
654 | 3
S86 | 1
440 | 1
我不能百分之百确定我是否理解您想要的内容,但是您是否可以在没有子选择的情况下使用联接而不是像这样
SELECT gs.APPID, COUNT(gs.APPID) AS total_count
FROM games_steam gs
LEFT JOIN games_other go
ON gs.APP_ID = go.steamappid
GROUP BY gs.APPID
请用示例数据和所需结果编辑您的问题。@GordonLinoff补充道,尽管不知道如何在markdownSorry中创建表格。是的,只是编辑了它。您的表格结构很混乱,很难理解,我将首先创建一个名为games_link的表格,我将保存您前面提到的两个表格之间的链接。你能解释一下你的entries表,为什么会有重复的ID,以及为什么435的计数是4吗?@Prix entries只是一个简单的东西,真实的看起来像这样:。它的计数为4,因为在games_other中,它包含相关steam游戏S35的steam appid,因此在进行排名时,它们应该显示为一个东西,而不是两个单独的ID。