나는 바로 그 지점에 가려고 노력할 것이다. 여기 내가하려는 일이있다.하나의 작업에 대한 세 가지 MySQL 쿼리!? 나는 생각하지 않는다.
SELECT * FROM userstable WHERE id = userid (in memberships table) -- AND/OR -- WHERE id = userid IF groupid is associated with templateid, and templateid is equal to $currenttemplateid
또는 인간의 발언에 : 다음 memberships
테이블과 경우 봐
membershipstable = || groupid || templateid || userid
|| 2 || 1 || 0
|| 0 || 1 || 3
|| 2 || 0 || 4
userstable = || id || firstname || lastname || email
것은 뭔가처럼 될 것이라고하고 싶으면 무엇 : 난에서 데이터를 가져해야 할 두 개의 테이블이 $currenttemplateid
과 일치하는 templateid
이 포함 된 행을 찾은 다음 해당 행에서 userid
을 다시 가져옵니다. 그런 다음 userstable
을보고 위에 나온 과 일치하는 id
이있는 각 사용자의 정보를 검색하십시오. 또한 $currenttemplateid
과 일치하는 templateid
이 포함 된 행을 찾은 경우 해당 행의 groupid
을보고 groupid
이있는 행에있는 userid
을 다시 가져오고 id
이 일치하는 모든 사용자에 대한 정보를 다시 검색하십시오 상기에서 발견 된 userid
.
제 설명이 다소 혼란스럽고, 제 질문이 초심을 악몽으로 여긴다면 (또한 걱정하지 마십시오. 실제 프로젝트에서는 준비되지 않은 문장을 사용하지 않습니다) ... MySQL을 단일의 효율적이고 아름다운 쿼리로 처리 할 수는 있지만 정확히 어떤 쿼리가 어떻게 생겼는지에 관해서는 완전히 손해볼 것입니다 ... 도움을 주셔서 대단히 감사합니다. :)
https://en.wikipedia.org/wiki/Join_(SQL) –
명확히 말하면, joinst를 사용하여'membershipstable'의 컬럼에 의해'userstable'에서 데이터를 가져 오는 방법을 알아 냈습니다. 내가 현재 가지고있는 더 큰 문제는 goupid, templateid 및 userid 부분 사이의 제휴를 처리 할 쿼리의 일부입니다. –
URL을 공유하면 우리 중 하나가이 작업을 수행 할 수 있습니다. sqlfiddle 당신은로드 된 데이터로 생성합니다. – Drew