我有表(user_page_cells
)用下面的查询显示:JOIN问题与SQL Server
SELECT tag_id, nid
FROM user_page_cells WHERE nid = 1;
它给我的结果:
我也有一个表(graph_tags
) :
SELECT *
FROM graph_tags where page_node = 1
哪给了我结果:
。
user_page_cells.nid
和graph_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.
我总是得到,如果LEFT
,RIGHT
,或FULL
使用这种不管;
任何人都可以点我在正确的方向?
谢谢
你得到的结果有什么问题? – 2013-02-18 20:41:26
你的输出有什么问题? – DevelopmentIsMyPassion 2013-02-18 20:43:24
我希望结果看起来像第一个查询的结果。但是,如果tag_id匹配2个表中的其他字段,则会显示graph_tag_id。 – Mildfire 2013-02-18 20:49:49