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.nidおよびgraph_tags.page_node両方の参照ページ ノード。

最初のクエリ結果を表示するクエリが必要です

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

1 つの列を追加します。この列にはdefault_graph_tag_id、2 番目のテーブル ( graph_tags)nid = page_nodeのが含まれている必要NULLがあります。

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.

LEFTRIGHT、または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 に答える