[英]Query where table has multiple values for a column and the same value in another?
[英]Query for multiple column with multiple values but in the different table with same column
我知道标题什么都不懂。 但是我不知道如何更好地定义它。
我将进一步解释我的问题。
我有2张桌子。 内部具有以下值的:
姓名表:战斗
res1 res2 winner
225 552 552
在第二张表中,我有:
姓名表:战士
ID name
225 example 1
552 example 2
ID和res 1 res2赢家是一样的东西。
如何构造表以显示名称而不是ID?
通常,我总是使用内部联接,但是我从未在同一字符串中找到更多的值。
谢谢回复。
您将需要多个联接。 对于初学者来说这很棘手,因为它需要表别名:
select f1.name as name1, f2.name as name2, fw.name as winner
from battle b join
fighters f1
on b.res1 = f1.id join
fighters f2
on b.res2 = f2.id join
fighters fw
on b.winner = fw.id;
您需要具有三个表战斗机别名才能获得所需的输出。 请参阅以下查询:
Select f1.name as Fighter-1,
f2.name as Fighter-2,
f3.name as Winner
From
battel b,
fighters f1,
fighters f2,
fighters f3
Where
b.res1 = f1.id AND
b.res2 = f2.id AND
b.winner = f3.id AND
(f1.id = 225 OR f2.id=225)
希望这可以帮助!
无需参加三场比赛,因为获胜者将永远是两个对手之一,因此您只需要进行一次案例分析:
select f1.name as name1, f2.name as name2,
case when b.winner = b.res1 then f1.name else f1.name end as winner
from battle b
join fighters f1
on b.res1 = f1.id
join fighters f2
on b.res2 = f2.id
为了避免插入或更新未玩过此游戏的获胜者的任何潜在问题,您可以将获胜者编号更改为一个简单的标志(1或2),以表明获胜者:
res1 res2 winner
225 552 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.