2012-04-03 19 views
0

は、これらの2つのクエリを手に入れた照会:組み合わせるSQLは

select d1.field_id_41 program_code, d1.field_id_48 program_group_code, t1.title program_lookup, t2.title group_title, 
     t1.url_title program_url_title, t2.url_title program_group_url_title 
from channel_titles t1 
join channel_data d1 on t1.entry_id = d1.entry_id 
join channel_data d2 on d1.field_id_48 = d2.field_id_47 
join channel_titles t2 on t2.entry_id = d2.entry_id 
where t1.channel_id = 26 and d1.field_id_41 != '' 
order by d2.field_id_45 , d1.field_id_9 


select ProgramCode, ProgramGroup, EventCode, FormalDate, LocCity, LocState, LocAddress, LocName, Price, 
     zl.latitude as LocLatitude, zl.longitude as LocLongitude 
from course_events e 
join channel_data d on e.ProgramCode = d.field_id_41 
join channel_titles t on d.entry_id = t.entry_id 
join zip_lat_long zl on zl.zip  = e.LocZipCode 

現在、最初のクエリがprogram_lookup、program_url_titlesとprogram_group_url_titlesと呼ばれる3つのJSONオブジェクトを移入するために使用されます。 次に、イベントと呼ばれるJSONオブジェクトに配置された2番目のクエリから返されたアイテムが反復され、結果の一部がイベントJSONオブジェクトのデータに基づいて参照キャッシュのアイテムとともにHTMLに表示されます。

html = html + hr + '<div class="course"><div class="col1' + tm10 + '"><h4>' + program_lookup[event['ProgramCode']] + '</h4></div>'; 
html = html + '<div class="col1"><b>' + event['LocCity'] + '</b><br/>' + '... <a href="/courses/' + program_group_url_titles[event['ProgramGroup']] + '/'+ program_url_titles[event['ProgramCode']]+ '/' + event['EventCode'] + '" target="_new">View Details</a></div><div class="col2">'; 

私は3つのルックアップオブジェクトを取り除くために1つのクエリにこれらを結合する必要があるが、それはこれをやって行く方法を実際に非常に効率的であるか、またはかどうか不明です。 これは、私のHTMLに表示される前に、このユーティリティ、http://jsonselect.orgを使用して基本的に項目をフィルタリングすることです。 私が必要とする理由は、他のすべてのアイテムの前に特定のアイテムを表示し、正しい順序でそれらを配置することをSQLで行うことができないようにする必要があるからです。

答えて

1

これらのselect文は一致しません。したがって、それらを組み合わせることは、おそらくあなたのやりたいことではありません。あなたは2つの選択ステートメントを組み合わせることができ場所の一例は、あなたのselect句が一致するすべての労働組合のようになります。

select a, b, c from table1 
    union all 
select a, b, c from table2 

あなたは、クライアント側の要件についての詳細を追加する必要がありますが、あなたは常にJSONオブジェクトに複数のオブジェクトを組み合わせることができます次のように。あなたは2つのオブジェクトを持っていたとしましょう:

[{'name':'dan','dog':'spot'},{'name':'sarah','dog':'rex'}] 
{'names':['dan','sarah']} 

あなたが1にマージできます。

{'detail':[{'name':'dan','dog':'spot'},{'name':'sarah','dog':'rex'}],'justNames':{'names':['dan','sarah']}} 

あなたは慎重に公式JSONページ上の最初の3つの図を読めばあなたは単純なオブジェクト表記法としてJSONを理解することができます:http://www.json.org/

+0

最初のクエリのデータは2番目のクエリのデータに依存するため、ユニオンは機能しません。 – MB34

+0

とにかく助けてくれてありがとう。 – MB34