Объединение нескольких баз данных

У меня есть три таблицы: categories , content_info и content .

  • Таблица categories содержит id категории и идентификатор его parent категории.
  • content_info содержит два столбца: entry_id для идентификатора сообщения и cat_id для идентификатора категории сообщения.
  • Таблица content содержит несколько столбцов о столбце – например, ID , title и т. Д.

У меня есть переменная в URL-адресе parent_id, которая соответствует parent элементу категории. Я хочу перечислить все POSTS (не КАТЕГОРИИ), которые относятся к категории с parent значения parent_id.

Например, скажем, значение parent_id равно 5. Каждое сообщение может принадлежать категории с идентификатором 20, но эта категория относится к родительской категории (идентификатор которой равен 5). Я хочу перечислить все записи, которые относятся к категориям с parent значением, чем бы то ни было текущим parent_id.

Есть ли способ сделать это с объединением MySQL вместо изменения PHP?

Это должно сделать это:

 SELECT c.* FROM content JOIN content_info ci ON ci.entry_id=c.id JOIN categories cat ON cat.id=ci.cat_id WHERE cat.parent_id=<parent_id> 

Это возвращает все сообщения (строки content ), которые относятся к категории, родитель которой является parent_id

Или с подзапросами:

 SELECT c.* FROM content JOIN content_info ci ON ci.entry_id=c.id WHERE ci.cat_id IN (SELECT id FROM categories cat WHERE cat.parent_id=<parent_id>) 
 SELECT c.* FROM content c, categories cat, content_info ci WHERE c.id = ci.entry_id AND cat.id = ci.cat_id AND cat.parent_id = 5