我想从2个表中选择数据,第2个表由存储在第3个表中的值指定。我的表是:
必需的查询(我不知道如何实现)必须:
I.从用户表中选择一个与_id
ID相等的用户。
二。我们得到user_type
(int值表示user_type.type_id)字段值(此表具有表type_id
名称,例如[“ 1” =>“ buyers”,“ 2” =>“ sellers,...])
三,现在,我们现在是什么用户类型和表名,其中包含有关该用户的更多信息
IV。从表中选择(买方,卖方,管理员等),然后检索整个数据(根据用户类型从表用户和其他表(买方,卖方,管理员等)中)table.user_id = users_id
我希望流程有意义,并谢谢您(任何建议或替代流程将不胜感激)
如@Mak所建议,我能够实现所需的功能,如下所示:
CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserData`(IN `user_id` INT)
BEGIN
DECLARE userTypeID INT;
DECLARE userTypeTableName TEXT;
SELECT user_type into userTypeID FROM users WHERE users._id = user_id LIMIT 1;
SELECT name into userTypeTableName FROM user_type WHERE user_type.type_id = userTypeID LIMIT 1;
SET @sql_text = concat('select user.*, sp_user.* from users user JOIN ',userTypeTableName,' sp_user ON user._id = sp_user.user_id WHERE user._id = ', user_id);
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句