sql - 具有唯一行的两个表的 CREATE VIEW
问题描述
我想创建两个表的视图,合并它们,其中 table1 中的列!= table2 中的列,然后插入没有重复列的行。
CREATE TABLE IF NOT EXISTS test(Birds, Animals, Air, Earth);
INSERT INTO test VALUES("Crow", "Dog", "Oxygen", "Not Flat");
CREATE TABLE IF NOT EXISTS test1 (Birds, Animals, Air, Earth, Sky);
INSERT INTO test1 VALUES("Crow", "Dog", "Oxygen", "Not Flat", "Blue");
INSERT INTO test1 VALUES("Eagle", "Dog", "Oxygen", "Not Flat", "Blue");
CREATE VIEW view_name AS SELECT * FROM test, test1 WHERE test.Birds != test1.Birds'
测试表:
Birds|Animals|Air|Earth
Crow|Dog|Oxygen|Not Flat
测试1表:
Birds|Animals|Air|Earth|Sky
Crow|Dog|Oxygen|Not Flat|Blue
Eagle|Dog|Oxygen|Not Flat|Blue
电流输出:
Birds|Animals|Air|Earth|Birds:1|Animals:1|Air:1|Earth:1|Sky
Crow|Dog|Oxygen|Not Flat|Eagle|Dog|Oxygen|Not Flat|Blue
期望的输出:
Birds|Animals|Air|Earth|Sky
Eagle|Dog|Oxygen|Not Flat|Blue
解决方案
你可以用不同的方式解决这个问题。不过,我有一个解决方案给你。请检查查询并告诉我=>
DECLARE @test TABLE(Birds VARCHAR(50), Animals VARCHAR(50), Air VARCHAR(50), Earth VARCHAR(50)) ;
INSERT INTO @test VALUES('Crow', 'Dog', 'Oxygen', 'Not Flat');
DECLARE @test1 TABLE (Birds VARCHAR(50), Animals VARCHAR(50), Air VARCHAR(50), Earth VARCHAR(50),Sky VARCHAR(50));
INSERT INTO @test1 VALUES('Crow', 'Dog', 'Oxygen', 'Not Flat', 'Blue');
INSERT INTO @test1 VALUES('Eagle', 'Dog', 'Oxygen', 'Not Flat', 'Blue');
CREATE VIEW view_name AS
SELECT t1.* FROM @test t
INNER JOIN @test1 t1 ON t.Birds<>t1.Birds
注意:此代码是用 SQL Server 编写的。
推荐阅读
- shell - vscode - 如何设置 shell/bash 启动配置(*不是*任务配置)?
- android - 在 Android 智能手表上记录数据时出现随机间隙
- django - 在 Django 网站中显示通过 GraphQL 检索到的数据
- java - jax-rs 2.1 如何处理来自上游 api 的 422 响应?
- ms-word - Microsoft Office 版本具有 DCOM 对象
- docker-compose - Docker-compose 在 crontab 中
- javascript - Javascript将对象附加到对象
- django - uuid.uuid4() 不在 DJango 表单中创建随机 UUID
- c# - WPF DevExpress HamburgerMenu ItemTemplateSelector 容器为空
- spring - 使用 TransactionalOperator 进行单元测试超时(Kotlin 协程)