Мне нужно объединение, которое дает три поля с одинаковыми именами из двух разных таблиц. Когда я пытаюсь выполнить свой 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.
- Политические цифры: Id, Name.
- За столом: страна, президент, вице-президент
(Обратите внимание, что таблицы и поля в моем приложении имеют разные имена. Я обобщаю их, чтобы сделать этот пример более понятным и , надеюсь, более релевантным для других.)
(Я использую следующие инструменты: Visual Web Developer 2010 Express и SQL Server 2008 Express.)