次のテーブルからPlayerName、PlayerNumber、Location、PartnerName、PartnerNumber、Locationの列を選択するクエリを作成したいと思います。
- プレーヤー(列:Id、PlayerName、PlayerNumber、LocationId)
- パートナー(列:Id、PartnerName、PartnerNumber、LocationId)
- 場所(列:ID、場所)
しかし、私はそれを行う方法を理解することはできません。誰かアイデアはありますか?
シンプルでまっすぐな方法
select PL.PlayerName , PL.PlayerNumber, L.Location, PT.PartnerName, PT.PartnerNumber
from Players PL, Location L, Patners PT
where L.id = PL.LocationId and L.id = P.LocationId
これはUNIONを使用して行うこともできますが、それについてはよくわかりません。
登録テーブルを検討した後、更新されたクエリを見つけます。
SELECT players.playername,
player.playernumber,
L1.location,
partners.partnername,
partners.partnernumber,
L2.location
FROM registration R
INNER JOIN players
ON players.id = R.playerid
INNER JOIN partners
ON partners.id = R.partnerid
INNER JOIN locations L1
ON players.locationid = L1.id
INNER JOIN locations L2
ON partners.locationid = L2.id
これを試してみてください..わかりません
select pl.Id,pl.PlayerName,pl.PlayerNumber,pa.ID,pa.PartnerName,pa.PartnerNumber,l.Location
from Players as pl,Partners as pa ,Location as l
where pl.LocationId = pa.LocationId and l.LocationId = pl.LocationId
and pa.LocationId = l.LocationId
AND l.LocationId = <some id>
Select PlayerName , PlayerNumber, Location, PartnerName, PartnerNumber
from Players pl
inner join Partners pa on pl.LocationId=pa.LocationId
inner join Location L on L.id=pa.LocationId
where Location = 'String to search for'
select
PlayerName,
PlayerNumber,
Location,
PartnerName,
PartnerNumber
from players
left join locations
on locations.id = players.LocationId
left join partners
on partners.LocationId = locations.id