【问题标题】:adding and sorting a column in sql在sql中添加和排序列
【发布时间】:2015-01-27 01:53:45
【问题描述】:

我正在尝试在 sql 中合并两个表,但遇到了问题。

表g是这样的

    id         name
*************************
  1234         john
  3456         sarah
  7890         ben

table f 是这样的

    id         count
**************************
   3456          2
   1234          7
   7890          5

我想在表 g 中插入一列,等于表 f 中的计数,根据 ID 排序。

我尝试过使用 INNER JOIN 和 UNION 命令,但它们似乎都不起作用。有谁知道解决方案?这似乎是一个很常见的问题。

【问题讨论】:

  • 您想连接表并编写一个查询,输出按 ID 排序的计数(简单连接),或者您想在表 g 中插入另一列 - 基本上合并两个表? (为什么?)
  • @Joel,老实说,你告诉过你想insert a column,那么老实说,以下哪个答案可以接受?
  • @FarhangAmary 有时作者会接受最适合他/她的东西;这并不一定意味着您的答案是错误的。在我看来,你的回答和我的一样有效。
  • @Isaiah,真的不是我的问题,我已经在你面前写了答案,但只是为了额外的描述和问题,我完成了它并在几秒钟后发布。我只是希望发布问题的用户清楚。

标签: sql database sqlite multiple-columns


【解决方案1】:
SELECT g.id, g.name, f.count
FROM f,g
WHERE f.id = g.id
ORDER BY g.id;

以上是一个简单的连接查询。

在简单的联接查询中,您可以从两个表中选择所需的信息,并将 where 条件设置为等于您要联接的行。

另外,您可能应该将 f.id 和 g.id 设置为主键,并将 f.id 设置为 g.id 的外键引用。

【讨论】:

  • 如果你想存储这个以备后用,你可以将上面的内容编辑为CREATE VIEW my_view AS SELECT…,然后你可以像普通表一样对这些结果运行查询!
【解决方案2】:

我猜你想要这样的选择:

select g.id,g.name,f.count
from go
     join f on g.id=f.id
order by g.id

但如果您真的想在表 g 中添加一列 (count) 并按照问题中的说明进行更新,您可以这样做:

alter table g 
add column count int 

并像这样更新故事g

update table g
set g.count=f.count
from g
     join f on g.id=f.id

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2018-10-03
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2020-06-28
    相关资源
    最近更新 更多