2012-04-03 113 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对象。 然后,从第二个查询返回的项目(也放置在名为event的JSON对象中)进行迭代,然后根据事件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">'; 

我需要将这些组合成一个查询摆脱三个查找的对象,但我不能确定它是否会是非常有效的还是真的如何去这样做。 这将允许我使用该实用程序http://jsonselect.org来基本筛选项目,然后将它们显示在我的HTML中。 我需要这个的原因是我需要在所有其他项之前显示某些项目,并且按照正确顺序放置它们不能在SQL中完成。

回答

1

这些select语句不匹配,所以将它们组合起来可能不是您想要做的。在那里你可以结合两个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作为一个简单的对象符号,如果你仔细阅读官方JSON页面上的第一个三个图:http://www.json.org/

+0

联合将无法工作,因为第一个查询中的数据取决于第二个查询中的数据。 – MB34 2012-04-03 20:57:50

+0

我想通了,无论如何,感谢您的帮助。 – MB34 2012-04-03 21:37:01