У меня есть две таблицы Activity и Action. Одно или несколько действий могут быть выполнены для действия. И отношения между Действием и Действием даны в третьей таблице под названием Действие Действия.
Как я получаю набор результатов, который говорит мне, какое действие применимо для каждого действия с помощью sql оператора? Вот структура таблицы
Таблица действия-ActivityId (PK), ActivityText
Таблица действия - ActionId (PK), ActionText
(PK) ActivityAction-ActivityActionId, ActivityID, ActionID
Я хочу результирующую таблицу в формате
Действие, применимое действие
(столбец Activity должен показать ActivityText, и Применимое Действие должно показать ActionText),
Вы могли вести меня?
Спасибо.
] Это должно выполнить трюк [
] [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[
].SELECT ActivityText, ActionText
FROM Activity
JOIN ActivityAction ON Activity.ActivityId = ActivityAction.ActivityId
JOIN Action ON ActivityAction.ActionId = Action.ActionId
WHERE Activity.ActivityId = 1;
] 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[
].