1

我的表 ( user_page_cells) 显示了以下查询:

SELECT tag_id, nid 
FROM user_page_cells WHERE nid = 1;

它给了我结果:

在此处输入图像描述

我还有一张桌子(graph_tags):

SELECT * 
FROM graph_tags where page_node = 1 

这给了我结果:

在此处输入图像描述.

user_page_cells.nidgraph_tags.page_node两个参考页面节点。

我需要一个显示我的第一个查询结果的查询

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

有一个额外的列。如果没有,则此列需要default_graph_tag_id来自第二个表 ( graph_tags)nid = page_nodeNULL根本没有。

我已经尝试使用LEFT, RIGHTFULL 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

在此处输入图像描述

谁能指出我正确的方向?

谢谢

4

1 回答 1

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
于 2013-02-18T20:47:41.960 回答