Если данные разбросаны по нескольким таблицам, мы просто пишем несколько JOIN подряд. Каждый JOIN — ещё одно «звено» цепи:
FROM A
JOIN B ON A.x = B.y - звено 1
JOIN C ON B.z = C.w - звено 2
JOIN D ON C.v = D.u - звено 3
Правило: каждый новый JOIN подключается к тому, что уже «на столе». Обычно — к предыдущей таблице в цепочке, но можно и к любой ранее подключённой.
Пример звезда → планета → цена → товар
Хотим увидеть: название системы, название планеты, название товара, цену покупки.
stars → .id = .star_id →
planets → .id = .planet_id →
prices → .product_type = .id →
product_types
SELECT
stars.name AS система,
planets.name AS планета,
product_types.name AS товар,
prices.buy_price
FROM stars
JOIN planets ON stars.id = planets.star_id
JOIN prices ON planets.id = prices.planet_id
JOIN product_types ON prices.product_type = product_types.id;