我有大数据第一个查询太大了。因此,我从第一个查询中制定了一个程序。我需要程序(数据(加入另一个表。
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;