【问题标题】:Postgresql how to use 2 table at the same timePostgresql如何同时使用2张表
【发布时间】:2021-06-20 14:59:17
【问题描述】:

这是问题所在: 第一个“图像检查表”测验是哪个测验?它是在什么日期发布的? 我有 2 个名为 B=public.daily_agg_quiz_metrics 和 A=public.quiz_metadata 的表。一个表有变量 quiz_type 变量。 B 表有 date 变量。那么我该如何解决这个问题呢?这是我的方法,但它不起作用

SELECT  * 
FROM  public.quiz_metadata 
WHERE quiz_type ='image checklist' 
ORDER date BY ASC

【问题讨论】:

  • 解决方案将涉及JOIN,这意味着知道表之间的关系。您将需要更新您的问题以提供两个表的完整定义。

标签: postgresql sql-order-by filtering


【解决方案1】:

我找到了答案

select quiz_id, num_views from public.daily_agg_quiz_metrics
where quiz_id in
(select quiz_id from public.quiz_metadata
where quiz_type='image checklist'
order by published asc
limit 1)

【讨论】:

  • 这是一种解决方案,但会超越查询的关系性质。这种事情最好使用JOIN 来完成。看我的回答。
  • 是的。但当时我还不知道那个关键字。现在我同意你的看法,但对于不知道加入关键字 IMO 的初学者来说,这同时具有很多算法性和信息性。
  • 它表明,如果您要深入研究 SQL,您至少应该阅读基本 SQL 原理的介绍。 JOIN 是最基本的之一。
【解决方案2】:

使用JOIN 完成您的任务:

SELECT 
    daily_agg_quiz_metrics.quiz_id, num_views 
FROM 
    public.daily_agg_quiz_metrics
JOIN
    public.quiz_metadata
ON 
    daily_agg_quiz_metrics.quiz_id = quiz_metadata.quizz_id
WHERE 
    quiz_type='image checklist'
ORDER BY 
    published asc
LIMIT 1

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2013-07-02
    • 2017-12-15
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多