Присоединитесь к двум таблицам на основе отношений, определенных в третьей таблице

У меня есть две таблицы Activity и Action. Одно или несколько действий могут быть выполнены для действия. И отношения между Действием и Действием даны в третьей таблице под названием Действие Действия.

Как я получаю набор результатов, который говорит мне, какое действие применимо для каждого действия с помощью sql оператора? Вот структура таблицы

Таблица действия-ActivityId (PK), ActivityText

Таблица действия - ActionId (PK), ActionText

(PK) ActivityAction-ActivityActionId, ActivityID, ActionID

Я хочу результирующую таблицу в формате

Действие, применимое действие

(столбец Activity должен показать ActivityText, и Применимое Действие должно показать ActionText),

Вы могли вести меня?

Спасибо.

36
задан user176687 5 January 2010 в 20:29
поделиться

3 ответа

[

] Это должно выполнить трюк [

] [
SELECT Activity.ActivityText as Activity, Action.ActionText as ApplicableAction
FROM ActivityAction
    INNER JOIN Activity
        ON ActivityAction.ActivityId = Activity.ActivityId
    INNER JOIN Action 
        ON ActivityAction.ActionId = Action.ActionId
] [

] Вы должны прочитать на JOINS в базах данных. Вот хорошая отправная точка:[

] [

][]http://en.wikipedia.org/wiki/Join_%28SQL%29[][

] [

]В основном, то, что мы имеем здесь, это много-много отношений между Activity и Action, которые разрешаются двумя отношениями один-ко-многим, используя таблицу соединений под названием ActivityAction.[

] [

]Чтобы получить требуемые данные обратно, мы присоединяем ActivityAction к каждой из таблиц, используя соответствующие столбцы PK и FK, а затем выбираем столбцы строк в SELECT[

].
51
ответ дан 27 November 2019 в 06:02
поделиться
[
SELECT ActivityText, ActionText
FROM Activity
JOIN ActivityAction ON Activity.ActivityId = ActivityAction.ActivityId
JOIN Action ON ActivityAction.ActionId = Action.ActionId
WHERE Activity.ActivityId = 1;
]
3
ответ дан 27 November 2019 в 06:02
поделиться
[
SELECT ActivityText AS Activity, ActionText AS ApplicableAction
  FROM Activity 
  JOIN ActivityAction on Activity.ActivityId = ActivityAction.ActivityID
  JOIN Action on Action.ActionId = ActivityAction.ActionID
] [

] У вас есть ID в таблице ActionAction, и когда вы присоединяетесь к таблице ActivityAction по ключу ActivityId, то можете присоединяться к таблице ActivityId[

].
0
ответ дан 27 November 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: