首页 > 解决方案 > 如何将表中的字段添加到 SELECT 的结果中以创建新视图?

问题描述

我有 2 个表:p07TABLE 和 p07TABLE_02。它们的结构如下图所示。

CREATE TABLE IF NOT EXISTS p07TABLE (
    id int NOT NULL AUTO_INCREMENT,
    dev_id varchar(20) NOT NULL,
    b_level varchar(10) NOT NULL,
    trig varchar(5) NOT NULL,
    t_stamp datetime DEFAULT CURRENT_TIMESTAMP,
    a_sent varchar(5) NOT NULL,
    a_stamp datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS p07TABLE_02 (
    id int NOT NULL AUTO_INCREMENT,
    dev_id varchar(20) NOT NULL,
    dev_location varchar(50) NOT NULL,
    t_channel varchar(50) NOT NULL,    
    PRIMARY KEY (id)
);

请注意,dev_id 用作链接 2 个表的键。

我使用下面的 SQL 来查找 p07TABLE 中每个 dev_id 的最新记录,它按预期工作。

SELECT * FROM p07TABLE WHERE id IN (SELECT MAX(id) FROM p07TABLE GROUP by dev_id);

dev_location有人可以分享一些关于如何通过添加和t_channelfromp07TABLE_02 到上述 SQL 创建的结果来创建视图的想法吗?谢谢!!

标签: mysqlsql

解决方案


你可以试试下面 -

create view t_viewname as
  SELECT a.*,dev_location,t_channel
  FROM p07TABLE a inner join p07TABLE_02 b on a.dev_id=b.dev_id
  WHERE a.id IN (SELECT MAX(id) FROM p07TABLE a1 where a.dev_id=a1.dev_id)

推荐阅读