전체의 여러 테이블 (사용자 그룹)을 선택 유효한 사용자 ID (UID)가 주어지면 지정된 사용자 아이디 (UID)와 동일한 그룹에 속하고 group_member.flag = 3 인 모든 사용자의 아이디를 가져옵니다.SQL의 문제는 이런 식으로 뭔가를 보이는 DB 스키마를
그냥 SQL이 있어야합니다. 나는 Db 프로그래머처럼 생각하는 법을 배우고 싶다. 코더로서, SQL은 필자의 가장 약한 링크입니다 (선언적 언어보다 명령 언어에 훨씬 더 익숙하기 때문에).하지만 저는 그것을 바꾸고 싶습니다.
어쨌든 다음은 작업을 분류하는 데 필요한 단계입니다. SQL 전문가가 단순한 SQL 문 (즉, 원자 SQL 문, 아래에 식별 된 하위 타스크에 대해 각각 하나씩)을 보여줄 수 있다면 마침내 나는이 문을 결합하여 필요한 기능을 구현하는 ONE 문을 어떻게 만들 수 있는지에 대해 감사하게 생각합니다. 내가 subtask2에 대한 SQL이 있으면, 그때 싶습니다
//Subtask #1.
Fetch list of all groups of which I am a member
Select group.id from user inner join group_member where user.id=group_member.user_id and user.id=1
//Subtask #2
Fetch a list of all members who are members of the groups I am a member of (i.e. groups in subtask #1)
Not sure about this ...
select user.id from user, group_member gm1, group_member gm2, ... [Stuck]
//Subtask #3
Get list of users that satisfy criteria group_member.flag=3
Select user.id from user inner join group_member where user.id=group_member.user_id and user.id=1 and group_member.flag=3
이 (전체 SQL 문이 하위에서 구축 방식을 볼 수 : 여기
은 (지정된 USER_ID [UID]를 가정 = 1) 간다 당신은 서브 타스크에서 SQL을 사용하지 않아도됩니다. 이것은 관련된 단계를 설명하는 방법 일뿐입니다. 또한 SQL은 정확하지 않을 수 있습니다. 그렇다면 수정하십시오. .
감사합니다.
는'foobar_id'이 멤버의 그룹 ID는 무엇입니까? 또한 사용중인 데이터베이스 엔진은 무엇입니까? MySQL, SQLite, PostgreSQL, ...? –
Doh! – morpheous