2013-02-18 1 views
1

나는 테이블 (user_page_cells는) 다음 쿼리 표시가 SQL Server에 문제를 가입 :

SELECT * 
FROM graph_tags where page_node = 1 

검색 결과 :

enter image description here

user_page_cells.nidgraph_tags.page_node 두 참조 페이지 노드.

나는 나의 첫 번째 쿼리가 하나의 여분의 열이

(SELECT tag_id, nid FROM user_page_cells WHERE nid = 1;) 

결과 표시하는 질의를 필요로한다. 이 열은 nid = page_node 또는 그렇지 않은 경우 NULL 인 경우 두 번째 표 (graph_tags)의 default_graph_tag_id이어야합니다.

나는 LEFT, RIGHT, FULL OUTER JOIN을 사용해 보았지만 찾고있는 결과를 얻을 수 없습니다.

다음은 작동한다고 생각되는 쿼리의 예입니다.

SELECT user_page_cells.tag_id, graph_tags.default_graph_tag_id 
FROM user_page_cells 
LEFT OUTER JOIN graph_tags ON user_page_cells.nid = graph_tags.page_node 
WHERE user_page_cells.nid = 1. 

나는 항상 LEFTRIGHT, 또는 FULL 사용하는 경우이없이 얻을;

enter image description here

사람이 올바른 방향으로 날 포인트?

고맙습니다.

+0

결과가 잘못되었습니다. –

+0

출력에 어떤 문제가 있습니까? – DevelopmentIsMyPassion

+0

결과가 첫 번째 쿼리의 결과처럼 보이길 원합니다. 그러나 2 개의 테이블에서 tag_id가 일치하면 graph_tag_id가 표시된 다른 필드가 표시됩니다. – Mildfire

답변

4

내가 원하는 것을 이해하면 합치기에 tag_id를 포함하면됩니다.

SELECT user_page_cells.tag_id, graph_tags.default_graph_tag_id 
FROM user_page_cells 
Left OUTER JOIN graph_tags 
ON user_page_cells.nid = graph_tags.page_node 
and user_page_cells.tag_id=graph_tags.tag_id 
where user_page_cells.nid = 1 
+0

BOOM에 들어 있습니다. 고마워. – Mildfire