简单数据库上的 MySQL Join 语句

标签 mysql join mysql-workbench

我有一个数据库,其中包含移动运营商的流行设备和品牌。

我想进行一个联接查询来选择帐户 + 品牌最流行的型号;

   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/

相关文章:

mysql - 使用触发器根据外键插入值

mysql - MySQL 中使用连接的慢查询

mysql - 连接三个表以获取标签列表

mysql - 仅在 MacOS 上查询期间丢失与 MySQL 服务器的连接

mysql - 对单词中匹配的起始字母进行排序

mysql - 从条件表中获取 WHERE 子句的条件

mysql - 困难的 MySQL 查询 - 获取日期之间的最大差异

mysql - 为什么这个 SQL 查询有效?

mysql - 不同的 MySQL 版本对子查询中的 LEFT JOIN 和 ORDER 给出不同的结果

mysql - 使用 MySQL 了解主键和关系数据库 (phpmyadmin)