我有大数据,而且第一个查询太大。
所以我从第一个查询开始做一个过程。我需要将过程(数据)联接到另一个表联接。

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/

10-09 00:23
查看更多