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。