我有大数据,而且第一个查询太大。
所以我从第一个查询开始做一个过程。我需要将过程(数据)联接到另一个表联接。
DELIMITER $$
CREATE PROCEDURE sales_pro()
BEGIN
SELECT * FROM sales;
END;
select * from sales
where sales.rep_id= sales_pro.rep_id
CREATE TABLE IF NOT EXISTS `reps` (
`rep_id` int(11) NOT NULL,
`rep_name` TEXT(50) NOT NULL
);
INSERT INTO `reps` (`rep_id`, `rep_name`) VALUES
(1, 'John'),
(2, 'Sally'),
(3, 'Joe'),
(4, 'Bob');
CREATE TABLE IF NOT EXISTS `sales` (
`prod_id` int(11) NOT NULL,
`rep_id` int(11) NOT NULL,
`sale_date` DATE NOT NULL,
`quantity` int(11) NOT NULL,
PRIMARY KEY (`prod_id`,`rep_id`,`sale_date`),
KEY `rep_id` (`rep_id`)
);
INSERT INTO `sales` (`prod_id`, `rep_id`, `sale_date`, `quantity`) VALUES
(1, 1, '2013-05-16', 20);
最佳答案
您无法加入过程,但可以通过视图来实现,视图可以像表一样对待(尽管有一些限制)。
CREATE VIEW sales_view AS
SELECT * FROM sales;
SELECT *
FROM sales AS s
JOIN sales_view AS sv ON s.rep_id = sv.rep_id
您不能将参数传递给视图,但是可以访问
WHERE
子句中的列。SELECT *
FROM sales AS s
JOIN sales_view AS sv ON s.rep_id = sv.rep_id
WHERE sv.quantity > 10;
关于mysql - 如何在mysql中连接过程数据和表数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57283667/