Я понимаю базовую концепцию ВНУТРЕННИХ СОЕДИНЕНИЙ, но у меня возникают проблемы с этим конкретным случаем (следующие три таблицы: PK = первичный ключ, FK = внешний ключ) -:
tbl_goal_context (many-to-many table)
rowId(PK) | goalRowId(FK) | contextRowId (FK) |
1 | 2 | 5 |
tbl_context_items
rowId(PK) | ... |
5 | ... |
tbl_context_categories_items (many-to-many table)
rowId(PK) | catRowId(FK) | itemRowId(FK) |
1 | 3 | 5 |
Я пытаюсь перечислить строки из tbl_context_items, которые связаны через две таблицы многие-ко-многим, где известны catRowId и goalRowId.
Так, например, скажем, я хочу вытащить всестроки из tbl_context_items, которые подключены к goalRowId = 2
и catRowId = 3
.
Вот моя попытка (с использованием приведенных выше примеров), которая дает мне ошибку: «Ошибка: неоднозначное имя столбца: tbl_goal_context.goalRowId Невозможно выполнить оператор "
SELECT tbl_context_categories_items.itemRowId, tbl_context_categories_items.catRowId, tbl_goal_context.goalRowId, tbl_goal_context.contextRowId, tbl_context_items.rowId AS rowId, tbl_context_items.shortText AS shortText, tbl_context_items.userMade AS userMade
FROM tbl_context_categories_items
INNER JOIN tbl_goal_context ON tbl_goal_context.contextRowId = tbl_context_items.rowId
INNER JOIN tbl_goal_context ON tbl_context_categories_items.itemRowId = tbl_context_items.rowId
WHERE tbl_context_categories_items.catRowId = 3
AND tbl_goal_context.goalRowId = 2
ORDER BY tbl_context_items.shortText ASC
ВНУТРЕННИЕ СОЕДИНЕНИЯ здесь не совсем уместны?Нужен ли подзапрос?