如何使过程从SQL中的不同表获取数据?

时间:2019-02-09 07:08:18

标签: sql sql-server

我正在用SQL创建存储过程来获取数据,如:

  {
            "UserID": 1,
            "UserName": "Ravi",
            "Password": "2222",
            "Email_ID": "a@gmail.com",
            "UserProfileImageURL": "https://",
            "Skills": {
                        "SkillDesc": "iOS",
                        "SkillDesc": "Android",
             }
 }

-----------我的存储过程就像---------

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

如何从Skills表中获取数据并添加到我的存储过程中?

1 个答案:

答案 0 :(得分:0)

如果我的猜测正确,那么您的技能表中将包含一个用户ID列,或者您的个人资料列中将具有一个技能ID列。

以下两种方式都可以将您的技能表加入到您的查询中,然后在选择列表中显示您的技能列。

通常,在表名后使用别名来缩短您需要在查询中键入的引用,例如“ Profile p”。只是使您自己更容易一些,而不是使用一个更长的别名来代替“配置文件”表中的“配置文件”。

public static void printMax(int score, ArrayList names_unsorted, ArrayList scores_unsorted, int order) {
    for (int i=0;i<names_unsorted.size();i++) {
        if ((int) scores_unsorted.get(i) == score) {
            int score_index = scores_unsorted.indexOf(Integer.valueOf(score));
            System.out.println(order+")"+names_unsorted.get(score_index).toString()+": "+score);
            scores_unsorted.remove(score_index);
            names_unsorted.remove(score_index);
            break;
        }
    }
}