2014-09-03 2 views
0

У меня есть БД, содержащая популярные устройства и бренды для мобильных операторов.MySQL Регистрация в простой базе данных

Я хочу сделать один запрос на соединение для выбора наиболее популярных моделей для и для учетной записи + бренда;

SELECT m1.name FROM 
    models as m1 
    JOIN accounts_to_models as am1 
     ON m1.id = am1.FK_model_id 

    JOIN brands as br 
    on br.id = m1.FK_brand_id 

    JOIN accounts as ac 
    on ac.id = am1.FK_account_id 

    WHERE ac.name = "Operator" and b1.name = "HTC" 
    ORDER BY am1.priority desc limit 10 

ответ

0

Я предполагаю присоединиться на brands не так, как это объединение на accounts. Попробуйте это:

SELECT m1.name 
FROM models m1 JOIN 
    accounts_to_models am1 
    ON m1.id = am1.FK_model_id JOIN 
    brands as b1 
    ON b1.id = m1.FK_brand_id JOIN 
--------------------^ 
    accounts as ac 
    on ac.id = am1.FK_account_id 
-----------^ 
WHERE ac.name = 'Operator' and b1.name = 'HTC' 
ORDER BY am1.priority desc 
limit 10; 
+0

нет FK_brand_id в am1, но спасибо ...! – user2988649

+0

@ пользователь2988649. , , Это была опечатка. Он должен был быть «m1» в соответствии с моделью данных, которую вы изначально имели в вопросе. –

0

Вы приравнивая ac.name с am1.FK_account_id в третий присоединиться. Так . я думаю, вам нужно написать:

ac.id = am1.FK_account_id 
Смежные вопросы