mysql - 如何将表中的字段添加到 SELECT 的结果中以创建新 View ?

标签 mysql sql

我有 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);

有人可以分享一些关于如何通过添加 p07TABLE_02 中的 dev_locationt_channel 创建 View 的想法吗 上述 SQL 创建的结果?谢谢!!

最佳答案

你可以试试下面-

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)

关于mysql - 如何将表中的字段添加到 SELECT 的结果中以创建新 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58076901/

相关文章:

sql - 按两个别名之一排序(对于同一个表的关系)

php - 更新 MySQL 错误但代码没有问题?

mysql CPU 使用率高(280%)

php - 选择数组中的值,分离并查询数据库laravel

php - 这个Mysql查询计数怎么写?

sql - 将合并替换为 case

mysql - SQL - 返回数据子集的项目排名

Mysql show processlist 列出许多进程sleep and info = null?

mysql - 有任何 SQL GROUP_CONCAT 替代函数吗?

mysql - 将 7 个表中的 8 个复杂查询合并为一个查询