【问题标题】:Inserting a New Column from Three Joined Tables从三个连接的表中插入一个新列
【发布时间】:2015-08-01 23:15:50
【问题描述】:

我有四列从三个不同的表连接

第 1 列包含他们的 ID 号

第 2 列和第 3 列分别是他们的姓氏和名字

第 4 栏他们的地址

SELECT 
    idno, lastname, firstname, address
FROM
    table1
        JOIN
    table2 ON table2.table2_pk = table1.table1_fk
        JOIN
    table3 ON table3.table3_pk = table2.table2_fk
ORDER BY acctnum ASC;

我想添加一个额外的列来确定该组的成员是旧成员还是新成员,例如 ID 编号从 1 到 50 的成员是旧的,而 51 到 100 的成员是新成员。

从三个连接表创建新列的语法是什么?

【问题讨论】:

  • 你使用的是 sql-server 还是 MySQL?
  • CASE 语句就是你所需要的

标签: mysql sql-server join


【解决方案1】:

类似:

SELECT 
    idno, lastname, firstname, address,
    case when idno <= 50 then 'OLD' else 'NEW' end status
FROM
    table1
        JOIN
    table2 ON table2.table2_pk = table1.table1_fk
        JOIN
    table3 ON table3.table3_pk = table2.table2_fk
ORDER BY acctnum ASC;

新列 status 根据您描述的 idno 值返回标志。

【讨论】:

    【解决方案2】:

    连接表与添加额外的列没有任何关系。只需将其添加到末尾即可:

    SELECT idno, lastname, firstname, address, CASE table1.idno WHEN <= 50 THEN 'New' ELSE 'Old' END AS MemberStatus
    

    您还应该将表名附加到每一列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 2015-07-02
      • 2020-09-28
      • 1970-01-01
      相关资源
      最近更新 更多