안녕하세요~
오라클을 공부하다가 잘 풀리지 않는 부분이 있어서 질문드립니다.
JOIN SQL 문인데요...
요렇게 테이블 구조가 되어있습니다.
LINK에서 LINKID에 해당하는 모든 NODEID를 NODEORDER로 정렬시켜서 가져온다음
NODEID에 해당하는 x, y 좌표값을 NODE 테이블에서 가져올려고 합니다.
결과는 NODEID, X, Y 필드가 나오도록 할려고합니다.
처음에는 IN을 써서
select * from NODE where NODEID in (select NODEID from LINK where LINKID='1234')
로 생각했었으나... 저렇게하면 NODEORDER를 기준으로 정렬을 못시키니....
그래서 책보고 어찌어찌 left outer join 을 써봤는데....
잘 안되네요 ^^
검색도 해보고 몇일동안 책보면서 했는데도 잘 안되서 질문드려봅니다.
미리 감사합니다^^
join link b on b.nodeid = a.nodeid
where b.linkid=1234
order by b.nodeorder
SELECT A.NODEID, B.X, B.Y FROM LINK AS A INNER JOIN NODE AS B ON A.NODEID=B.NODEID WHERE LINKID='1234' ORDER BY B.NODEID ASC;
±×³É »ý°¢³ª´Â´ë·Î ²ôÀû¿©ºÃ´Âµ¥ ¹®¹ýÀÌ ¸Â´ø°¡...
¸ÕÀú ÀÍÈ÷½Ã±æ ±ÇÇÕ´Ï´Ù.
¹ÚÀÎÈ£´Ô ¸»¾¸¿¡ ¶ß²ûÇϳ׿ä. ´Ù½Ã °øºÎÇÏ°Ú½À´Ï´Ù!
, MIN(NODE.X) N_X
, MIN(NODE.Y) N_Y
FROM (SELECT LINK.NODEID
, LINK.NODEORDER
FROM LINK
WHERE LINK.LINKID = '1234'
ORDER BY LINK.NODEORDER) LINK,
NODE
WHERE LINK.NODEID = NODE.NODEID(+)
GROUP BY LINK.NODEID;
¿øÇÏ´Â ´äÀÌ ¸Â³ª¿ä?
½Å°æ½á¼ Á¶¾ðÇØÁֽŠÄõ¸®¹® °¨»çÇÕ´Ï´Ù.
Á¦°¡ ¹Ý¼ºÇÏ°í °øºÎÁ» ´õ ÇÏ°Ú½À´Ï´Ù^^
Äõ¸®¹®À̶ó°í ´Ù ¶È°°Áö ¾Ê±º¿ä. ^^
,A.NODEID
,B.NODEORDER
,A.X
,A.Y
FROM NODE A,LINK B
WHERE A.NODEID =B.NODEID
AND B.LINKID='1234'
ORDER BY B.NODEORDER
¸ð¹ÙÀϷΠŸÀÌÇÎ Ä¡±â Èûµå³×¿ä
NODEID·Î Á¶ÀÎÇؼ X,Y°ªÀ» º¸°í
NODEORDER·Î Á¤·Ä
°³¹ßÀÚ´Â µ¥ÀÌÅ͸¦ Ž»öÇÏ´Â ¸ðÇè°¡ÀÔ´Ï´Ù
õõÈ÷ ½ÃÀÛÇغ¸¼¼¿ä