В этом примере я хочу вызвать все строки таблицы.Однако содержимое таблицы можно снова найти в подмножествах.Посмотрите:
У меня есть небольшая база данных футболистов, которая построена так:
Игрок: [PID, Имя, Номер]
Вратарь: [PID]
Защитник: [PID, Side]
Полузащитник: [PID, Specialty]
Атакующий: [PID, StrongFoot]
Так что я пытаюсь сделать этовместо того, чтобы иметь один столбец для player.name, я хочу, чтобы имена вратарей, защитников, полузащитников и нападающих находились в отдельных столбцах.Для начала я попытался:
select distinct gk.name, def.name
from (select p.name
from player p, goalkeeper g
where p.pid = g.pid) gk, (select p.name
from player p, defender d
where p.pid = d.pid) def
Но это дает мне несколько результатов (в лучшем случае).Таким образом, каждая запись, скажем, для вратаря повторяется так же часто, как и общее количество def.name.
Что было бы приемлемым / ХОРОШИМ способом сделать это?
РЕДАКТИРОВАТЬ:
Итак, чтобы изложить мою проблему:
Скажем, у меня есть 2 вратарей в моей базе данных {"GK1", "GK2"} и 6 защитников {"D1 "," D2 "," D3 "," D4 "," D5 "," D6 "}.Если я выполню запрос выше, я получу два столбца, но вместо 2 и 6 записей соответственно я получу 12 для каждого.В голкипере каждый ID повторяется 6 раз, в столбце Defender каждая запись повторяется 2 раза.Есть ли способ просто отображать различные значения (поэтому упоминание каждого идентификатора только один раз) в каждом столбце и устанавливать другое значение NULL?