2013-05-15 2 views
-2

Я использую SQL Server 2008 R2. Я хочу присоединиться к таблицам, но всегда получаю ошибкуОшибка в запросе с использованием SQL Server 2008 R2

нескольких частей Идентификатор не может быть связан

У меня есть 3 таблицы Drivers, Request и Journey. У меня есть driver_id внешний ключ в Journey. Как я могу присоединиться к этим таблицам, чтобы получить подробную информацию обо всех трех таблицах?

Select driver.driver_name 
from Drivers, 
    Journey 
where driver.id = journey.id 
    and driver.id=1; 
+6

Вам нужно будет показать запрос. Убедитесь, что столбцы, которые отображаются в обеих соединенных таблицах, устраняются с помощью префикса таблицы имен или псевдонима; 'select table1.column ...' –

+0

Ваша таблица является именем 'drivers', но вы ссылаетесь на псевдоним с именем' driver' (обратите внимание на недостающие 's') –

ответ

0

Эта ошибка обычно возникает, когда псевдоним используется при ссылках на столбец в ЗЕЬЕСТЕ и псевдоним, используемый не определен в любом месте в ЕКЕ ЗЕЬЕСТ.
Для получения более подробной информации посетите here

-1

водитель + s

Select Drivers.driver_name 
from Drivers, 
    Journey 
where Drivers.id = journey.id 
    and Drivers.id=1; 
0

Вы, кажется, только присоединиться два из трех ваших таблиц - правильно?

Надлежащий, ANSI SQL-92 стандарт-совместимый способ сделать это было бы:

SELECT 
    driver.driver_name 
FROM 
    Drivers 
INNER JOIN 
    Journey ON driver.id = journey.id 
WHERE 
    driver.id = 1; 

Это использует стандарт ANSI (в месте с - более 20 лет!) JOIN синтаксис INNER JOIN (есть также LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL JOIN и еще несколько) вместо того, чтобы просто разделять запятую список таблиц в предложении FROM.

См. Превосходное сообщение в блоге Aaron Bertrand Bad habits to kick : using old-style JOINs по этой теме.

Смежные вопросы