약간의 SQL이 있지만 텍스트를 숫자로 되돌릴 수있는 방법을 찾을 수 없습니다. - 개정!복잡한 SQL 쿼리 문제
SELECT if(`linktype` = "group",
(SELECT contactgroups.grname
FROM contactgroups, groupmembers
WHERE contactgroups.id = groupmembers.id ???
AND contactgroups.id = groupmembers.link_id),
(SELECT contactmain.contact_sur
FROM contactmain, groupmembers
WHERE contactmain.id = groupmembers.id ???
AND contactmain.id = groupmembers.link_id)) AS adat
FROM groupmembers;
지금은 약간의 정보가 다시 제공되지만 개선 되었습니까? (minitech 덕분에) 내 문제를 나타냅니다. 나는 내가 어떻게 고칠 수 있는지 알지 못한다. .. 어떤 충고가 환영 받았다! Thansk
Contactmain (id, contact_sur, email2)
data:
1 | Peter | [email protected]
2 | Andrew| [email protected]
Contactgroups (id, grname)
data:
1 | All
2 | Trustee
3 | Comitee
Groupmembers (id, group_id, linktype, link_id)
data:
1 | 1 | contact | 1
2 | 1 | contact | 2
3 | 2 | contact | 1
4 | 3 | group | 2
그리고 나는, 내가 바로 :)
만약'contactgroups.id'가'groupmembers.id'와 같아야하지만'2'와 같아야한다면, 그것은 중복되고 문제가있는 곳이라고 생각합니다. – Ryan
두 번째 질문이 당신에게 옳은 대답을주고 있다면 왜 그 대답을 사용할 수 없습니까? 또한, 당신에게 잘못된 질문을하는 첫 번째 쿼리는 무엇입니까? 실제로 예상 한 결과는 무엇입니까? 주의 : 여기서 우리 대부분은 쉼표로 구분 된'FROM' 절을 싫어합니다. 왜냐하면'JOIN' 조건을 이해하기 어렵게 만들 수 있기 때문입니다 - eplicit-join 구문을 사용하십시오. –
테이블 스키마와 샘플 데이터를 제공하십시오. 테이블 스키마가 없으면 숫자 대신 텍스트를 가져 오는 이유를 알기가 어렵습니다. –