четверг, 21 марта 2013 г.

Как отобрать информацию из одной таблицы, фильтруя по данным другой (INNER JOIN)

-- Как отобрать информацию из одной таблицы, фильтруя по данным другой (INNER JOIN)?-- Как работают соединения INNER JOIN?


-- Задача:
-- Найти курсы, у которых направление обучения содержит 'SQL'.
-- 1. Соединяем таблицы, при помощи внутреннего соединения

SELECT
    *
FROM Course AS C
    INNER JOIN
         Branch AS B
    ON C.BranchID = B.BranchID

-- 2. Получили новую таблицу, логически содержащую кросc-соединение двух таблиц, строки отфильтрованы на основе условия ON
-- 3. К новой логической таблице применяем стандартные действия отбор и фильтрацию

SELECT
    Course.Name
    ,Branch.Name
FROM Course
    INNER JOIN
         Branch
    ON Course.BranchID = Branch.BranchID
WHERE Branch.Name LIKE '%SQL%'

-- Задача решена