Вы можете использовать этот запрос. Если существует несколько моделей с одинаковым именем, этот запрос вернет все модели из всех соответствующих марок указанного имени модели.
SELECT c.Car, m.Model_ID, m.Model
FROM Models AS m_search
INNER JOIN Cars AS c
ON m_search.Car_ID = c.Car_ID
INNER JOIN Models AS m
ON c.Car_ID = m.Car_ID
WHERE m_search.Model = ?
Пример на PostgreSQL (поскольку MySQL не поддерживает WITH
):
chris=$ WITH Cars (Car_ID, Car) AS (VALUES
(1, 'Ford'),
(2, 'Fiat'),
(3, 'Toyota')
), Models (Car_ID, Model_ID, Model) AS (VALUES
(1, 14, 'Mustang'),
(1, 21, 'Focus'),
(1, 87, 'Escort'),
(2, 78, '500'),
(2, 45, 'Punto'),
(3, 66, 'Agyo')
)
SELECT c.Car, m.Model_ID, m.Model
FROM Models AS m_search
INNER JOIN Cars AS c
ON m_search.Car_ID = c.Car_ID
INNER JOIN Models AS m
ON c.Car_ID = m.Car_ID
WHERE m_search.Model = 'Escort';
car | model_id | model
------+----------+---------
Ford | 14 | Mustang
Ford | 21 | Focus
Ford | 87 | Escort
(3 rows)