mysql - 带有输入和输出 SQL 的存储过程
问题描述
我正在尝试制作一个存储过程,它采用名称/或数字并返回该名称/数字的特定值
因此,在这段代码中,我正在尝试编写一个存储过程,它采用公司名称或 cvr 编号并返回该公司的合规程度
DROP DATABASE IF EXISTS DRCS;
CREATE DATABASE DRCS;
USE DRCS;
CREATE TABLE Companies (
ID INT not null,
Name varchar(255),
primary key (ID)
);
CREATE TABLE CVR (
ID INT not null,
CVR_Number INT
);
CREATE TABLE Compliance (
ID INT not null,
Complaince_level varchar(255)
);
CREATE TABLE GDPR (
ID INT not null,
GDPR_steps varchar(255)
);
INSERT INTO Companies VALUES
(1, 'TDC'),
(2, 'MAERSK'),
(3, 'LEGO'),
(4, 'SAS'),
(5, 'Carlsberg');
INSERT INTO CVR VALUES
(11, '14773908'),
(12, '32345794'),
(13, '47458714'),
(14, '56994912'),
(15, '61056416');
INSERT INTO Compliance VALUES
(21, '10%'),
(22, '20%'),
(23, '40%'),
(24, '60%'),
(25, '80%');
INSERT INTO GDPR VALUES
(31, '1. Awareness'),
(32, '2. Information you hold'),
(33, '3. Communication privacy information'),
(34, '4. Individuals rights'),
(35, '5. Subject access requests');
#HERE MY PROBLEM STARTS
DELIMITER $$
CREATE PROCEDURE DoC()
BEGIN
SELECT * FROM Companies , CVR, Compliance, GDPR;
END $$
DELIMITER ;
CALL DoC;
解决方案
您可以对所有表进行联合查询。但是所有选择查询的clomum count 应该是相同的。
DELIMITER $$
CREATE PROCEDURE DoC()
SELECT A.id,A.name FROM
( SELECT id as id , name as name FROM Companies
UNION ALL
SELECT id as id , name as name FROM CVR
UNION ALL
SELECT id as id , name as name FROM Compliance
UNION ALL
SELECT id as id , name as name FROM GDPR) as A
END $$
DELIMITER ;
推荐阅读
- gcc - 无法构建 Movesense 传感器固件 2.0 预览版
- python - 如何读取目录中的多个文件,所有这些文件都是带有 Airflow S3 Hook 或 boto3 的 csv.gzip?
- python - Pandas:使用 pd.read_sql 进行参数化和非参数化查询的速度差异
- youtube-api - 有没有办法使用 YouTube Data API v3 从频道中检索超过 20,000 个最新视频?
- python - 如何在嵌套列表python中的索引[1]处旋转数字
- reactjs - 在状态更改时使用成帧器运动为反应组件制作动画
- xml - XSLT 从 XML 中删除 ns
- .net - 捕获固定长度字符串中零填充的可变长度组
- ruby - 我正在用 selenium 和 nokogiri 抓取 instagram,我想改进我的代码
- mysql - MySQL:使用 JOIN 从同一张表中提取被推荐用户总数