Я хочу объединить 3 таблицы в MySQL с помощью хранимой процедуры и объединить их.
Я уже проверил весь код и параметры синтаксической ошибки или неправильных имен, но не могу их найти.
Хранимая процедура: GetOpenOrderFromUser ()
DELIMITER $$
CREATE DEFINER=`present`@`%` PROCEDURE `GetOpenOrderFromUser`(IN `UserIDParam` INT)
READS SQL DATA
BEGIN
DECLARE OrderIDParam INT DEFAULT 0;
SELECT OrderID INTO OrderIDParam FROM _newapp_shop_orders WHERE UserID = UserIDParam AND Status = 'Open';
SELECT 'events' as Type,
Id,
Foto,
Video,
Titel,
Omschrijving,
Datum_Begin,
Datum_Eind,
Win,
Bovenaan,
Lat,
Lng,
_newapp_shop_order_items.OrderID,
_newapp_shop_order_items.Amount,
_newapp_shop_products_events.CategoryID,
_newapp_shop_products_events.Price,
_newapp_shop_products_events.DiscountPercent
FROM ((Events
INNER JOIN _newapp_shop_products_events ON Events.Id = _newapp_shop_products_events.EventID)
INNER JOIN _newapp_shop_order_items ON Events.Id = _newapp_shop_order_items.EventID)
WHERE _newapp_shop_order_items.OrderID = OrderIDParam
UNION ALL
SELECT 'activities' as Type,
Id,
Foto,
Video,
Naam as 'Titel',
Omschrijving,
Datum_begin,
Datum_eind,
Win,
Bovenaan,
Lat,
Lng,
_newapp_shop_order_items.OrderID,
_newapp_shop_order_items.Amount,
_newapp_shop_products_activitys.CategoryID,
_newapp_shop_products_activitys.Price,
_newapp_shop_products_activitys.DiscountPercent
FROM ((Activiteiten
INNER JOIN _newapp_shop_products_activitys ON Activiteiten.Id = _newapp_shop_products_activitys.ActivityID)
INNER JOIN _newapp_shop_order_items ON Activiteiten.Id = _newapp_shop_order_items.ActivityID)
WHERE _newapp_shop_order_items.OrderID = OrderIDParam;
END$$
DELIMITER ;
Хранимая процедура иногда работает, когда я запускаю ее из phpmyadmin, она работает, но из кода и терминала mysql выдает эту ошибку:
Expression missing. (near "ON" at position 25)
SET FOREIGN_KEY_CHECKS = ON;
#2014 - Commands out of sync; you can't run this command now.