mysql - 如何将表中的字段添加到 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_channel
fromp07TABLE_02
到上述 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)
推荐阅读
- ember.js - 在启动 ember 服务器时,我收到了类似 SyntaxError: Unexpected identifier async postBuild() 之类的错误
- node.js - 为什么通过刷新浏览器 bundle_client 上的页面 localhost 会停留在待处理状态?
- docker - Docker - 如何列出卷名称 - 简单的方法
- c++ - 如何为不同的类声明相同的对象名称?
- python - pylibjpeg-libjpeg 未安装
- c# - SignalR with .NET 5 是否与运行 .NET Standard 2.1 的 Blazor 应用程序兼容?
- c++ - 在 CMake 中安装静态库的调试和发布配置
- xml - 将一个大 XML 分解为多个 tf 资源
- maven - 如何使用 Maven 复制具有特定扩展名的所有文件
- python-3.x - 在 Python 中过滤由 2 位值组成的字符串