我有一个数据库,其中包含移动运营商的流行设备和品牌。
我想进行一个联接查询来选择帐户 + 品牌最流行的型号;
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
最佳答案
我猜测 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;
关于简单数据库上的 MySQL Join 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25650211/