0

1)ツリーと2)ユニットの2つのクエリがあります

最初のクエリ

SELECT * FROM tree WHERE entity_id = 8656 

以下のデータを返します:

entity id | parent_id | length
-------------------------------
8656      | 8656      | 0
8656      | 8655      | 1
8656      | 8654      | 2
8656      | 8653      | 3
8656      | 4331      | 4
8656      | 2         | 5
8656      | 1         | 6

2番目のクエリ

SELECT * FROM units WHERE activity_id =10066

戻り値

id  | activity_id | activity_name | region_id | region_name 
-----------------------------------------------------------
136 | 10066       | Cricket       | 4331      | Yote
137 | 10066       | Cricket       | 8653      | Handbreath
140 | 10066       | Cricket       | 8656      | Kevb

期待される結果

    entity id | parent_id | length | region_name
    --------------------------------------------
    8656      | 8656      | 0      | Kevb
    8656      | 8655      | 1      | null
    8656      | 8654      | 2      | null
    8656      | 8653      | 3      | Handbreath
    8656      | 4331      | 4      | Yote
    8656      | 2         | 5      | null
    8656      | 1         | 6      | null

私はこのクエリを試しました

SELECT tree . * , units.region_name
FROM tree
LEFT JOIN units ON tree.parent_id = units.region_id
WHERE tree.entity_id = 8656
AND units.activity_id = 10066
4

3 に答える 3

2

句ではなく、に移動するu.activity_id =10066ことで、次の結果を生成できます。LEFT JOINWHERE

select t.entity_id,
  t.parent_id,
  t.length,
  u.region_name
from tree t
left join units u
  on t.parent_id = u.region_id
  and u.activity_id =10066
WHERE t.entity_id = 8656 

SQL FiddlewithDemoを参照してください

于 2012-11-29T11:49:19.740 に答える
0

これを試して:

SELECT t.entity_id, t.arent_id, t.length, A.region_name
FROM tree t 
LEFT JOIN (SELECT region_id, region_name FROM units WHERE activity_id =10066 ) AS A ON t.arent_id = A.region_id 
WHERE entity_id = 8656 

また

SELECT t. * , u.region_name
FROM tree t
LEFT JOIN units u ON t.parent_id = u.region_id AND u.activity_id = 10066
WHERE t.entity_id = 8656
于 2012-11-29T11:49:12.430 に答える
0

左結合クエリを表示すると便利です。とにかくこれを試してください...

    SELECT t.entity_id, t.parent_id, t.length, u.region_name from tree t
    left join units u on t.parent_id = u.region_id and u.activity_id =10066
    WHERE t.entity_id = 8656 
于 2012-11-29T11:55:56.997 に答える