2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

[메모] LINQ 로 간단한 JOIN (LEFT-INNER-JOIN) 하기

정말 너무나 취약한 분야 데이터베이스 ㅋㅋ
하면 까먹고 보면 잊어버리고 이건 뭐 ㅋㅋㅋㅋ
여하턴 LINQ를 이용해서 두 테이블을 하나로 합치는 걸 해봤다.

여기서는 내부결합만 했고 외부결합은 다음 링크를 참조해보자.

[참조]
LINQでの内部結合・外部結合

여기서는 users 테이블에서 id, 이름, 성별, 연령 항목값과 typeresult 테이블에서 점수 항목값을 가져와서 JOIN 한 테이블을 만든 후, 이용자 개체에 값을 할당했다.

// 타겟이 되는 이용자id를 사용해서 두 테이블을 내부결합 하는 코드 with LINQ
// 참고:qiita.com/H-Takayama/items/0e0a962f9ebc59547e4d
// 다른 코드는 생략
    var query = model.users.Join(
            //결합 할 테이블명
            model.typeresults,
            //결합 하는 쪽의 결합조건
            typeresults => typeresults.id,
            //결합 되는 쪽의 결합조건
            users => users.id,
            //(결합되는 쪽을 가리키는 범위변수、결합하는 쪽을 가리키는 범위변수)=> NEW
            (usertyperesult) => new
            {
                // 두 태이블을 결합함.
                userid = user.id,
                username = user.username,
                generation = user.generation,
                gender = user.gender,
                typeid = typeresult.typeid,
                dryscore = typeresult.dryscore,
                hotscore = typeresult.hotscore,
                humidscore = typeresult.humidscore,
                coldscore = typeresult.coldscore,
            }
        )
        .Select(jointable => new
        {
            // 결합한 결과를 가지고 새로운 테이블을 생성
            userid = jointable.userid,
            username = jointable.username,
            generation = jointable.generation,
            gender = jointable.gender,
            typeid = jointable.typeid,
            dryscore = jointable.dryscore,
            hotscore = jointable.hotscore,
            humidscore = jointable.humidscore,
            coldscore = jointable.coldscore,
        })
        //  전체 결합조건을 설정
        .Where(jointable => jointable.userid == targetUserId)
        //  데이터의 중복제거
        .FirstOrDefault();

    // 객체에 결합시킨 테이블의 필드값을 넣음
    userid = query.userid;
    username = query.username;
    generation = query.generation;
    gender = query.gender;
    typeid = query.typeid;
    dryscore = (short)query.dryscore;
    hotscore = (short)query.hotscore;
    humidscore = (short)query.humidscore;
    coldscore = (short)query.coldscore;

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법