我的表格(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.nid
和graph_tags.page_node
两个参考页面节点。
我需要一个显示我的第一个查询结果的查询
(SELECT tag_id, nid FROM user_page_cells WHERE nid = 1;)
有一个额外的列。如果default_graph_tag_id
,则此列需要来自第二个表格graph_tags
(nid = page_node
),如果不是NULL
,则需要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
或{{1}},我都会得到此信息;
有人能指出我正确的方向吗?
谢谢
答案 0 :(得分: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