对你们有疑问,
尝试为我的mysql表创建一个过程,但我需要一些帮助......
IM完全阻止......
我需要创建一个过程,在我的表中显示父项名称,但表格显示父项id
离。
(DELIMITER //
CREATE PROCEDURE fetch_animal_parents (IN animal_id INT, OUT animal_name VARCHAR(10))
BEGIN
DECLARE animal_mom INT DEFAULT 0 ;
DECLARE animal_dad INT DEFAULT 0 ;
DECLARE animal_name_mom VARCHAR(10) ;
DECLARE animal_name_dad VARCHAR(10) ;
SELECT name INTO animal_name, (SELECT name FROM animal WHERE id = child.mother_id) INTO animal_name_mom,
(SELECT name FROM animal WHERE id = child.father_id) INTO animal_name_dad
FROM animal AS child ;
END //)
我做错了什么......
............................................... ................................................. < / p>
任何输入......
答案 0 :(得分:1)
1)为什么你在不在任何地方使用它们时选择妈妈/爸爸的名字?
2)我想你的程序应该以儿童动物身份作为输入,并给妈妈&amp;爸爸的名字作为输出(这是你的程序名称所暗示的)。在这种情况下,你需要有2个输出值,或者你需要将这些名称连接成1个变量并返回它们。
3)@VMai建议使用2种连接格式,我同意。查询将类似..
SELECT mom.name,dad.name INTO animal_name_mom, animal_name_dad
FROM (select mother_id,father_id from animal where id = <precedure_input>) AS `child`
INNER JOIN (select id,name from animal) AS `mom` ON (mom.id=child.mother_id)
INNER JOIN (select id,name from animal) AS `dad` ON (dad.id=child.father_id)
我看到你至少尝试过自己的东西(你很困惑)。我建议你在尝试程序之前先学习一些mysql的基本语法/关键字/函数。学习使用GROUP BY
,JOIN
的变体,你可以处理很多基本的查询。