相关疑难解决方法(0)

在连接表上使用LIMIT 1连接MySQL

我想加入两个表,但只能获得table1上每条记录的table2记录

例如:

SELECT c.id, c.title, p.id AS product_id, p.title
FROM categories AS c
JOIN products AS p ON c.id = p.category_id
Run Code Online (Sandbox Code Playgroud)

这会让我记录下来products,这不是我想要的.我想要每个类别1个[第一个]产品(我sort在产品领域有一个专栏).

我该怎么做呢?

mysql join limit

59
推荐指数
5
解决办法
10万
查看次数

将 LIMIT 应用于 SQL INNER JOIN 查询

我有以下表格:

类别

    id(int)
    1000  
    1001
Run Code Online (Sandbox Code Playgroud)

    id(int)  category(int) rating(float)
    3000     1000          5.0
    3001     1000          4.8
    3002     1000          3.0
    3003     1000          4.9
    3004     1001          4.9
    3005     1001          3.0
Run Code Online (Sandbox Code Playgroud)

我想要做的是从每个类别中选出 3 本评价最高的书。在环顾四周并按照LIMITing an SQL JOIN给出的答案之后,我尝试了这个查询。

    SELECT * FROM book, category WHERE book.category=category.id AND book.id IN (SELECT book.id FROM book ORDER BY rating LIMIT 3)
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误

     #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Run Code Online (Sandbox Code Playgroud)

解决方案说至少需要MySQL 5.1,我正在运行libmysql - 5.1.73。可能有什么问题?

mysql

5
推荐指数
1
解决办法
4334
查看次数

标签 统计

mysql ×2

join ×1

limit ×1