【问题标题】:A usually simple SQL join一个通常简单的 SQL 连接
【发布时间】:2018-11-04 04:58:39
【问题描述】:

我需要关于使用 PostgreSQl 进行 JOIN 的建议。我想获取单个 id 的总和(或输入 id 1 的次数)并将其放入表 b 中的新列中。

表一

id  username   comment
1    Bob        Hi
2    Sally      Hello
1    Bob        Bye

表 b

id    something   total_comments
1       null            2

【问题讨论】:

  • 为什么? kind 可以使用什么分析函数。您是否有性能原因来存储此值?随着 A 的变化(新的或删除的记录),B 的计数是否需要更新? (如果确实如此,则更有理由在运行时进行计数)
  • 这两个表将用于不同的视图。
  • 选择进入? SELECT * INTO B FROM (Select ID, count(*) from A group by ID) A 但这是一次加载。您是否需要每次 A 中的某些更改来更新 B?最后,这与“JOIN”有什么关系?类似的问题:stackoverflow.com/questions/8250389/… 但我不确定你在追求什么

标签: postgresql join count


【解决方案1】:

如果 table_b 尚不存在,您可以使用 SELECT INTO

SELECT
    id
  , NULL AS something
  , COUNT(comment) AS total_comments
  INTO table_B
FROM table_a
GROUP BY id

如果 table_b 确实存在,则为 INSERT INTO

INSERT INTO table_b (id, something, total_comments)
SELECT
    id
  , NULL AS something
  , COUNT(comment) AS total_comments
FROM table_a
GROUP BY id

【讨论】:

    【解决方案2】:

    在表a上创建插入、更新、删除触发器以选择表b中的总和和更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-07
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      相关资源
      最近更新 更多