通过id命令mysql查询,也可以通过额外的部分命令

时间:2017-08-17 23:15:47

标签: php mysql

我正在尝试按冠军名称订购数据库表,但是使用其他表中的ID,如果该ID =冠军ID,那么它将会订购。

我尝试了这个,但它没有正确排序它似乎错过在顺序中放置一些行所以我认为我的查询丢失了一些东西。我已经尝试过asc和desc,但仍然出现了bug

SELECT Plat_PLUS_Champion_Stats.*
FROM Plat_PLUS_Champion_Stats, Champion_Data
WHERE concat(Plat_PLUS_Champion_Stats.Champ_ID, '.jpg') = 
Champion_Data.Champion_Sub_Background
ORDER BY Champion_Data.Champion

目标是从此表中获取数据

Champion_Data表

id    Champion    Champion_Sub_Background        
---|------------|-------------------------|
6  |   Janna    |         80.jpg          |     
5  |   Karthus  |         123.jpg         |      
7  |   Aatrox   |         45.jpg          |   
1  |   Talon    |         95.jpg          |           

Plat_PLUS_Champion_Stats表

id    Champ_ID           
---|------------|
6  |     80     |     
5  |     45     |     
7  |    123     |  
1  |     95     |

目标是获得Champ_ID并与Champion_Sub_Background比较,如果两个相同的数字然后显示冠军命令desc。

1 个答案:

答案 0 :(得分:0)

为了清楚起见,我缩短了表格名称。使用您的选择,很难看出订单是否正确:

select stats.* 
from champion_data as data, plat_plus_champion_stats as stats 
where concat(stats.champ_id, '.jpg')=data.champion_sub_background 
order by data.champion desc 

id  champ_id
1   95
7   123
6   80
5   45

所以我在表格中添加了名称:

select stats.*, data.* 
from champion_data as data, plat_plus_champion_stats as stats 
where concat(stats.champ_id, '.jpg')=data.champion_sub_background 
order by data.champion desc 

id  champ_id    id  champion   champion_sub_background  
1   95          1   Talon       95.jpg
7   123         5   Karthus     123.jpg
6   80          6   Janna       80.jpg
5   45          7   Aatrox      45.jpg

您的查询工作正常;它只需要DESC中的ORDER BY。很可能你对id字段感到困惑。它在两个表之间并不匹配 - 注意Karthus和Aatrox的id字段之间的区别。使用它们判断订单是否正确很容易混淆。