【发布时间】:2016-08-07 07:32:27
【问题描述】:
请检查这些表格。
-
FAMILY表:FamilyID (pk)、familyName -
PARENT表:ParentID (pk)、FamilyID (fk)、用户名、电子邮件、密码 -
KID表:KidID (pk)、FamilyID (fk)、用户名、电子邮件、密码
以下是从特定姓氏获取父母和孩子的存储过程。这里的数据是从 3 个表中检索出来的。
CREATE DEFINER=`root`@`localhost` PROCEDURE `prc_Dashboard`(IN `inputuserName` VARCHAR(255))
BEGIN
SET @familyID = (SELECT familyID FROM PARENT WHERE userName = inputuserName);
SELECT
F.familyName AS FamilyName,
P.userName AS Parents,
K.userName AS Kids
FROM
PARENT P
INNER JOIN
FAMILY F ON P.FamilyID = F.FamilyID
LEFT OUTER JOIN
KID K ON K.FamilyID = F.FamilyID
WHERE
P.FamilyID = @familyID AND F.FamilyID = @familyID
GROUP BY
FamilyName, Parents,Kids;
END
输出应该是
相反,它会创建家庭、父母和孩子的副本,并给我 6 条记录。
【问题讨论】:
-
向我们展示表格数据。
标签: mysql sql stored-procedures left-join inner-join