2015-05-08 4 views
-2
CREATE PROCEDURE spJoin3Tables 
AS 
BEGIN 
    SELECT 
     tbl_Jobs.JobTitle, tbl_Company.CompName 
    FROM 
     tbl_Jobs 
    INNER JOIN 
     tbl_Company ON tbl_Jobs.CompID = tbl_Company.ID 

    SELECT 
     tbl_Cities.CityName 
    FROM 
     tbl_Cities 
    INNER JOIN 
     tbl_JobCities ON tbl_Cities.ID = tbl_JobCities.CityID 
    INNER JOIN 
     tbl_Jobs ON tbl_JobCities.JobID = tbl_Jobs.ID 
END 

Результат: две таблицы. Я хочу получить все три столбца в одной таблице - какой будет запрос?Как получить значения из 3 таблиц?

+3

Какова связь между результирующими 2 таблицами? –

+3

Опишите, как вы хотите, чтобы разные таблицы были объединены! – jarlh

+0

Это викторина? Похоже на то, что точно, – Raj

ответ

0

Вам просто нужно добавить таблицу компаний и столбцы из первого запроса ко второму запросу и обязательно присоединиться к идентификатору компании.

SELECT 
    tbl_Cities.CityName, tbl_Jobs.JobTitle, tbl_Company.CompName 
FROM 
    tbl_Cities 
INNER JOIN 
    tbl_JobCities ON tbl_Cities.ID = tbl_JobCities.CityID 
INNER JOIN 
    tbl_Jobs ON tbl_JobCities.JobID = tbl_Jobs.ID 
INNER JOIN 
    tbl_Company ON tbl_Jobs.CompID = tbl_Company.ID 
+0

Я хочу получить те города, в которых размещены вакансии. Существует много-много отношений b/w tbl_Jobs и tbl_Cities. @Sam –

+0

С тем, как этот запрос написан, вы должны получить несколько строк для каждого задания, исходя из того, сколько городов находится в таблице JobCities. Разве это не то, что происходит? –

+0

Это происходит точно, но я хочу получить те города, у которых есть идентификатор, в tbl_JobCIties, как CityID. В вашем случае я получаю все города, которые находятся в tbl_Cities @Sam –

0

ИСПОЛЬЗОВАНИЕ ВНУТРЕННЕГО ПРИСОЕДИНЕНИЯ, ЧТОБЫ ПОЛУЧИТЬ ВСЕ ДАТУ. ЕСЛИ В СЛУЧАЕ ЛЮБЫЕ ТАБЛИЦЫ В ИДЕНТИФИКАТАХ КОЛИЧЕСТВО НУЛЬНОЕ ЗНАЧЕНИЕ ТОЛЬКО ПОЛЬЗОВАТЕЛЬ ЛЕВЫЙ ВСПОМОГАТЕЛЬНЫЙ

SELECT tbl_Jobs.JobTitle, tbl_Company.CompName , tbl_Cities.CityName 
FROM tbl_Jobs 
INNER JOIN tbl_Company ON tbl_Jobs.CompID = tbl_Company.ID 
INNER JOIN tbl_JobCities ON tbl_JobCities.JobID = tbl_Jobs.ID 
INNER JOIN tbl_Cities ON tbl_Cities.ID = tbl_JobCities.CityID 
+0

Пожалуйста, не используйте ВСЕ КАПСЫ. Трудно читать и часто интерпретируется как крик. – Mureinik

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