我正在创建一个存储过程(例程),它从表中选择多个字段,然后设置一个检查/输出变量。
根据我的数据库中的数据,检查/输出变量适当地设置为所要求的数据,但我的查询不返回任何实际数据:
CREATE DEFINER=`odcorg_darrmik`@`%` PROCEDURE `sp_Get_Specific_Load`(
IN LOAD_ID INT,
OUT SUCCESS BIT)
BEGIN
set SUCCESS = 0;
SELECT
LOAD_ID,
DRIVER_ID,
BOL_NUMBER,
MILES,
LOAD_PAY,
SURCHARGE,
TARP_FEE,
DESCRIPTION,
WEIGHT,
TRUCK_NUMBER,
TRAILER_NUMBER,
HAZARDOUS,
DATE_RECEIVED,
DATE_DISPATCHED,
DATE_DUE,
DATE_DELIVERED,
BROKER_COMPANY,
BROKER_NAME,
TIME_APPOINTMENT,
TIME_ARRIVED,
TIME_STARTED,
TIME_FINISHED,
FCFS,
COMPLETE,
PAID_COMPANY,
PAID_DRIVER,
(SELECT NAME FROM customers inner join loads_info on loads_info.LOAD_ID = @LOAD_ID and customers.CUSTOMER_ID = loads_info.SHIPPER_ID) AS SHIPPER_NAME,
SHIPPER_ID,
(SELECT NAME FROM customers INNER JOIN loads_info ON loads_info.LOAD_ID = @LOAD_ID AND customers.CUSTOMER_ID = loads_info.CONSIGNEE_ID) AS CONSIGNEE_NAME,
CONSIGNEE_ID,
(SELECT FIRST_NAME + ' ' + LAST_NAME FROM employee inner join loads_info on loads_info.LOAD_ID = @LOAD_ID and EMPLOYEE_ID = DRIVER_ID) AS DRIVER_NAME,
(SELECT SIGNED_BOL FROM loads_documents INNER JOIN loads_info ON loads_info.LOAD_ID = @LOAD_ID and loads_documents.LOAD_ID = @LOAD_ID) AS SIGNED_BOL
FROM loads_info WHERE LOAD_ID = @LOAD_ID;
set SUCCESS = 1;
END
我已经从查询中删除了大部分内容:
CREATE PROCEDURE sp_Get_Specific_Load(
IN LOAD_ID INT,
OUT SUCCESS BIT)
BEGIN
set SUCCESS = 0;
SELECT * FROM loads_info;
set SUCCESS = 1;
END
上述过程将再次返回 SUCCESS 输出,但不会从
SELECT * FROM loads_info;
如果我删除所有内容,只留下
SELECT * FROM loads_info;
该过程将返回数据......如果我添加一个 WHERE 子句(到上面非常简单的查询),我再次没有得到数据......所有字段标题但没有数据。
我对 MySQL 很陌生...我将这个过程从我在 MSSQL 中编写的过程转换为预期的功能,返回请求的数据和检查/输出变量。
我做错了什么??