【问题标题】:How to join two tables and add a limit如何连接两个表并添加限制
【发布时间】:2021-05-28 08:51:57
【问题描述】:

给定一个 SQLite 数据库中的两个表,

app_vendor

app_id | vendor_id 
---------------
43     |  747
3      |  12
83     |  747

....

应用程序

id | name
---------------
43 | Instagram
5  | Snapchat

我正在尝试从给定“vendor_id”的“app”(应用程序名称)中获取 10 个“名称”

SELECT A.name 
FROM app_vendor AS S 
WHERE vendor_id = 747 
JOIN app AS A ON S.app_id = A.id 
LIMIT 10

我做错了什么?

【问题讨论】:

  • 一次,WHERE 应该在 JOIN 之后。

标签: sql sqlite join


【解决方案1】:

您的WHERE 子句位于错误的位置。你可以这样做:

SELECT A.name 
FROM app_vendor AS S 
JOIN app AS A ON S.app_id = A.id 
WHERE s.vendor_id = 747 
LIMIT 10

结果:

name      
--------- 
Instagram 
Snapchat  

请参阅DB Fiddle 的运行示例。

【讨论】:

    【解决方案2】:

    您的WHERE 子句放错了位置。无论如何我都不会加入,因为您要做的就是选择应用程序。使用WHERE 子句进行限制。

    select name 
    from app
    where id in
    (
      select app_id
      from app_vendor
      where vendor_id = 747
      limit 10
    );
    

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2021-11-10
      • 2015-02-27
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      相关资源
      最近更新 更多