Мне нужно соединение, которое дает три поля с тем же именем из двух разных таблиц. Когда я пытаюсь запустить свой sql-запрос, VS дает мне следующую ошибку.
Объекты "Политические Фигуры" и "Политические Фигуры" в предложении FROM имеют одинаковые открытые имена. Используйте имена корреляции, чтобы различать их.
Я пытаюсь использовать "AS", чтобы отличать эти поля, но я не нашел рабочего решения. Это запрос sql, который я запускаю:
SELECT Countries.Name AS Country, PoliticalFigures.Name AS President, PoliticalFigures.Name AS VicePresident FROM Countries
LEFT OUTER JOIN PoliticalFigures ON Countries.President_Id = PoliticalFigures.Id
LEFT OUTER JOIN PoliticalFigures ON Countries.VicePresident_Id = PoliticalFigures.Id
Если это не очевидно из кода, это таблицы.
- Страны: Id, Name, President_Id, VicePresident_Id.
- Политические символы: Идентификатор, имя.
- Присоединившийся стол: страна, президент, вице-президент
(Обратите внимание, что таблицы и поля в моем приложении имеют разные имена. Я обобщаю их, чтобы сделать этот пример более ясным и, надеюсь, более релевантным для других.)
(Инструменты, которые я использую, - это Visual Web Developer 2010 Express и SQL Server 2008 Express.)