나는 파이어 버드에서이 같은 테이블이 있습니다어떤 SQL 절을 사용해야합니까?
Tablename: SERVICES
+-----------+-----+-----+-----+
|serviceno |user1|user2|user3|
+-----------+-----+-----+-----+
|v1 | |1 |2 |
+-----------+-----+-----+-----+
|v2 |3 |2 | |
+-----------+-----+-----+-----+
|v3 |5 |4 | |
+-----------+-----+-----+-----+
|v4 |3 |2 |1 |
+-----------+-----+-----+-----+
내가 해봤
+-----------+-----+-----+-----+
|serviceno |user1|user2|user3|
+-----------+-----+-----+-----+
|v1 | |a |b |
+-----------+-----+-----+-----+
|v2 |c |b | |
+-----------+-----+-----+-----+
|v3 |e |d | |
+-----------+-----+-----+-----+
|v4 |c |b |a |
+-----------+-----+-----+-----+
로 해당 테이블을 원하는
Tablename: USERNAMES
+--------+-----+
|username|code |
+--------+-----+
|a |1 |
+--------+-----+
|b |2 |
+--------+-----+
|c |3 |
+--------+-----+
|d |4 |
+--------+-----+
|e |5 |
+--------+-----+
이 테이블을
SELECT IFF(A.USER1 = NULL,NULL,B.NAME),
IFF(A.USER2 = NULL,NULL,C.NAME),
IFF(A.USER3 = NULL,NULL,D.NAME)
FROM SERVICES A INNER JOIN USERNAMES B ON (A.USER1 =B.CODE)
INNER JOIN USERNAMES C ON (A.USER2 =C.CODE)
INNER JOIN USERNAMES D ON (A.USER3 =D.CODE)
그
그리고 여러 시도가 있지만 항상 결과는 행 v4뿐입니다. 왜? 모든 행을 어떻게 얻을 수 있습니까?
감사합니다 !!! 이것은 나에게 '모든 필드는 null 행'을 제공하는데, 이는 내가 필요로한다. – kudra
상관 관계가있는 하위 쿼리는 일반적으로 성능 문제를 만드는 부적절한 기술입니다. 왼쪽 조인 솔루션이 더 나은 솔루션입니다. – HLGEM