Объединение отдельных столбцов из одной таблицы в операторе SELECT - PullRequest
0 голосов
/ 07 августа 2011

Я боролся с этой проблемой в течение 3 часов. Я знаю, что могу обойти вещи, поместив данные в две разные таблицы, но это наносит ущерб объекту, поскольку данные внутренне связаны, и я знаю, что ответ будет простым, но попробовал все способы заставить его работать, следуя многочисленным ссылкам / примерам, но Мне очень трудно понять, как пример относится к моей проблеме.

Это не настоящий SQL, но он проиллюстрирует, что именно я пытаюсь сделать. Это база данных mySQL.

playerName = Johan Djourou
nationality = Côte d'Ivoire
playsFor = Switzerland

tbl_Soccer_Player
playerID,
playerName,
nationalityID,
playsForID,
CONSTRAINT fk1 FOREIGN KEY (nationalityID) REFERENCES tbl_nationality(notionalityID),
CONSTRAINT fk2 FOREIGN KEY (playsForID) references tbl_nationality(notionalityID)

tbl_nationality
nationalityID
nationality // french, spanish, belgian
country // france, spain, belgium

SELECT playerName, nationality, country FROM tbl_Soccer_Player
JOIN tbl_nationality ON tbl_Soccer_Player.nationalityID = tbl_nationality.nationalityID

... теперь, как мне присоединиться к округу, если они из одной таблицы ???

Большое спасибо заранее, Mark

PS. Раньше я решал подобные задачи, используя конструктор запросов Microsoft Access GUI для составления запросов, но сейчас работаю в Linux Ubuntu. Я буду искать приложение на основе Linux, чтобы сделать это, но кто-нибудь знает хороший для использования?

1 Ответ

2 голосов
/ 07 августа 2011

Вы делаете еще одно объединение с той же таблицей и используете псевдонимы, чтобы разделить их:

SELECT playerName, n.nationality, p.country
FROM tbl_Soccer_Player
JOIN tbl_nationality as n ON tbl_Soccer_Player.nationalityID = n.nationalityID
JOIN tbl_nationality as p ON tbl_Soccer_Player.playsForID = p.nationalityID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...