我在Joomla数据库中有三个表,我想要查询它们,然后按日期排序,但我不完全了解如何使用join function in joomla。
Table 1: __content
id , created, title, state, catid
'1' , '2010-01-01 00:00:00' , 'ContentTitle' , '1' , '23'
'2' , '2014-03-01 00:00:00' , 'ContentTitle2' , '1' , '20'
Table 2: __webcasts
id, eventdate, title, state
'1' , '2015-03-01' , 'WebcastTitle' , '1'
Table 3: __conferences
id, eventdate, title, state
'1' , '2012-05-01' , 'ConferenceTitle' , '1'
我想从内容表中选择包含catid 23的所有文章,并与网络广播和会议表结合,然后按日期排序结果,以便我有一个这样的表:
id, created-eventdate, title, state
'1' , '2015-03-01' , 'WebcastTitle' , '1'
'1' , '2012-05-01' , 'ConferenceTitle' , '1'
'1' , '2010-01-01 00:00:00' , 'ContentTitle' , '1'
更复杂的事情(我认为)是表格之间日期格式的差异。如何使用Jdatabase组合查询我的3个表?
答案 0 :(得分:0)
使用以下查询,您将获得结果
return (T) conv.ConvertFromString(string.IsNullOrWhiteSpace(value) ? "0" : value);
以下是获取结果的原始mysql查询
$q2
->select('id , event_date As date, title, status')
->from('webcasts')
;
$q1
->select('id , event_date As date, title, status')
->from('conferences')
;
$query
->select('id , created_date As date, title, status')
->from('content')
->where('catid = 23')
->union($q1)
->union($q2)
->order('id ASC, date desc')
;
$result = $db->setQuery($query)->loadObjectList();