2017-02-22 20 views
3

Я использую этот оператор для извлечения строк из одной таблицы путем фильтрации данных из другой таблицы.SQL Server: не удается выбрать столбцы одной таблицы путем фильтрации из другой таблицы при одной и той же проблеме базы данных

SELECT EMPNO 
FROM EMP 
WHERE CITY_NAME = 'Los Angeles'; 

Я использую SQL Server 2014, и я получаю эту ошибку:

Msg 207, Level 16, State 1, Line 51
Invalid column name 'CITY_NAME'.

На самом деле мне нужно получать EMPNO FROM EMP путем фильтрации всех людей от 'Лос-Анджелеса'

Я также попробовать это утверждение, но оно не работает либо:

SELECT EMPNO 
FROM EMP 
WHERE dbo.LOCATION.CITY_NAME = 'Los Angeles'; 

IMAGE OF ALL TABLE

ПРИМЕЧАНИЕ: это все на том же сервере и той же базе данных

Спасибо.

+0

Вы можете использовать присоединиться – kritikaTalwar

+0

вы можете сказать мне, какие столбцы первичного ключа? И связь между таблицами? –

ответ

6

Вам нужно СОЕДИНЕНИЕ между таблицами.

SELECT EMPNO FROM EMP 
JOIN DEPT ON EMP.DeptNo = DEPT.DeptNo 
JOIN LOCATION ON LOCATION.City_ID = DEPT.City_ID 
WHERE LOCATION.CITY_NAME='Los Angeles'; 
+0

Просто укажите, что имена таблиц - DEPT, EMP и LOCATION (см. Mssms tree). – Petaflop

+0

@msanz спасибо за указание ..edited –

0

Если у вас есть 3 таблицы:

  1. EMP
  2. РАСПОЛОЖЕНИЕ
  3. DEPT

Запрос будет

SELECT 
    EMP.* 
FROM 
    EMP 
JOIN 
    DEPT ON EMO.DEPTNO = DEPT.DEPTNO 
JOIN 
    LOCATION ON LOCATION.CITY_ID = DEPT.CITY_ID 
WHERE 
    LOCATION.CITY_NAME = 'Los Angeles' 

Это может быть достигнуто путем соединения.

0

вы не Habe столбец с именем city_name в EMP таблице, но CITY_ID так у вас есть таблица с именем места с CITY_ID и CITY_NAME в колонке

вы только хаб присоединиться к как таблицы с помощью CITY_ID и вы сможете для фильтрации по столбцу city_name.

SELECT EMPNO FROM EMP e, DEPT d, LOCATION l WHERE e.CITY_ID = l.CITY_ID AND e.DEPTNO = d.DEPTNO AND l.CITY_NAME = 'Los Angeles';

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

  • Нет связанных вопросов^_^