我有一个数据库,我在其中使用内部联接返回一组更有用的信息。当我运行时:
SELECT `invoices`.`property`,`invoices`.`invoice_number`,`invoices`.`date`,`customers`.`company_name`,`invoices`.`total`
FROM `invoices`
INNER JOIN `customers` ON `invoices`.`customer` = `customers`.`customer_id`
WHERE `invoices`.`property` = 'CGC' ORDER BY `invoices`.`date` DESC;
就其本身而言,我得到了我所期望的。
但是当我使用相同的查询创建一个存储过程时,接受一个参数,a la:
DELIMITER $$
USE `techrentals`$$
DROP PROCEDURE IF EXISTS `getInvoiceList`$$
CREATE DEFINER=`root`@`%` PROCEDURE `getInvoiceList`(IN prop_id INT)
BEGIN
SELECT `invoices`.`property`,`invoices`.`invoice_number`,`invoices`.`date`,`customers`.`company_name`,`invoices`.`total`
FROM `invoices`
INNER JOIN `customers` ON `invoices`.`customer` = `customers`.`customer_id`
WHERE `invoices`.`property` = prop_id ORDER BY `invoices`.`date` DESC;
END$$
DELIMITER ;
然后我执行该存储过程:
CALL getInvoiceList('CGC');
它返回集合中的每张发票。
知道为什么它不返回完全相同的集合吗?我不是 MySQL 专家,但在我看来,它们在功能上应该是相同的。
提前致谢。