如何在SQL中生成从不同表中获取数据的过程?
我正在SQL中创建一个存储过程,以获取如下数据:如何在SQL中生成从不同表中获取数据的过程?,sql,sql-server,Sql,Sql Server,我正在SQL中创建一个存储过程,以获取如下数据: { "UserID": 1, "UserName": "Ravi", "Password": "2222", "Email_ID": "a@gmail.com", "UserProfileImageURL": "https://", "Skills": {
{
"UserID": 1,
"UserName": "Ravi",
"Password": "2222",
"Email_ID": "a@gmail.com",
"UserProfileImageURL": "https://",
"Skills": {
"SkillDesc": "iOS",
"SkillDesc": "Android",
}
}
-----------我的存储过程就像---------
如何从Skills表中获取数据并添加到my存储过程中?如果我的猜测是正确的,则Skills表将有一个用户id列或profile列将有一个Skills id列 无论哪种方式,请按如下所示将技能表加入查询,然后在选择列表中显示技能列 另外,通常在表名后使用别名来缩短您需要输入到查询中的引用,例如“Profile p”。只是让您自己轻松一点,而不是在“Profile”表中使用类似于“profiles”的别名
您使用的是哪个数据库?能否向我们展示您的表结构和关系映射详细信息?请与我们分享模式和一些示例数据output@Alex这是一个SQL数据库,根据一个用户,它将有多种技能。@Amandepsingh我指的是您使用的DBMS,例如Mysql、SQL Server、,Oracle等。在技能表中,一个用户可能有多个技能记录,那么如何根据一个用户处理多个技能记录?左连接的工作方式是在右表(此处为技能表)中显示每个匹配案例,在左表(此处为用户表)中显示所有案例。因此,您将看到每用户每技能一行。所以如果“汉克”有两种技能。你将为他看到两排。如果他有0项技能,您将看到他有1行技能列为null(您可以联合(技能“”)来处理null)。
SELECT users.*,
profiles.Details,
profiles.Experiance,
profiles.HoursCompleated,
profiles.RatePerHour,
profiles.SubTitle,
profiles.TotalEarning
FROM Users users
LEFT JOIN profile profiles
ON users.UserID = profiles.UserID
WHERE users.UserType = 'Coach'
AND users.UserID = 1
SELECT users.*, profiles.Details, profiles.Experiance,
profiles.HoursCompleated, profiles.RatePerHour,
profiles.SubTitle, profiles.TotalEarning FROM Users users
LEFT JOIN profile profiles ON users.UserID =
profiles.UserID
LEFT JOIN Skills ON users.UserID=Skills.UsersID WHERE
users.UserType = 'Coach' AND users.UserID = 1