Как я могу получить значения значений из таблицы, а также не в этой таблице в SQLite? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть две таблицы: Player (имя, адрес электронной почты) и TeamPlayer (PlayerName, Team, Active).Таблицы Player и TeamPlayer связаны через Player.name = TeamPlayer.PlayerName.

Я хочу получить все элементы TeamPlayer, но также и элементы в Player не в TeamPlayer.Важен также атрибут Active.Я выполняю следующую команду, но она не сработала:

SELECT DISTINCT Player.Name, TeamPlayer.Team, TeamPlayer.Active FROM Player LEFT JOIN TeamPlayer ON TeamPlayer.PlayerName=Player.Name ORDER BY TeamPlayer.Active;

Возможно ли это?

1 Ответ

1 голос
/ 23 сентября 2019

Вы можете использовать UNION ALL для таблицы TeamPlayer и строк из Player, которые не существуют в TeamPlayer:

SELECT PlayerName AS Name, Team, null AS email, Active 
FROM TeamPlayer 
UNION ALL
SELECT t.Name, null, t.email, 0 
FROM Player t
WHERE NOT EXISTS (
  SELECT 1 FROM TeamPlayer
  WHERE PlayerName = t.Name 
)
ORDER BY Active

Поскольку в 2 таблицах нетте же столбцы, несуществующие столбцы для каждого случая будут NULL или 0 для столбца Active.Вы можете изменить его по своему желанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...