我正在尝试按冠军名称订购数据库表,但是使用其他表中的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。
答案 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字段之间的区别。使用它们判断订单是否正确很容易混淆。