得到了这两个查询:
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中以正确的顺序放置它们。
答案 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/