结合SQL查询

时间:2012-04-03 17:46:41

标签: sql json

得到了这两个查询:

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的JSON对象。 然后迭代从第二个查询返回的项目,也放在一个名为event的JSON对象中,然后部分结果显示在我的HTML中,以及基于事件JSON对象中数据的查找缓存中的项目,如下所示: / p>

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 个答案:

答案 0 :(得分:1)

那些select语句不匹配,因此组合它们可能不是你想要做的。您可以组合两个select语句的一个示例是您的select子句匹配的所有联合:

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

您应该添加有关客户端要求的更多详细信息,但您始终可以将多个对象组合到JSON对象中,如下所示。假设您有两个对象:

[{'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/