2017-10-02 7 views
0

Joomlaデータベースに3つのテーブルがあり、それらを組み合わせて日付順に並べ替えたいと思っていますが、join function in joomlaの使い方は完全に分かりません。3つのデータベーステーブルを結合する

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' 

私は23をCATIDしているコンテンツのテーブルからすべての記事を選択することが好きで、ウェブキャストや会議テーブルと結合し、その後、私はこのようなテーブルを持っているように、結果を日付で注文します:

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' 

さらに複雑なこと(私は思う)は、テーブル間の日付フォーマットの違いです。 3つのテーブルを結合してクエリするために、Jdatabaseを使用してクエリを作成するにはどうすればよいですか?クエリ以下

答えて

0


使用あなたは以下の

$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(); 

そして、結果を得るために、生のmysqlのクエリで結果を取得します

SELECT a.id AS id, a.created_date AS date, a.title, a.state FROM (SELECT id, created_date, title, state FROM content WHERE catid = 23) AS a 
UNION ALL 
SELECT id, event_date As date, title, state FROM webcasts 
UNION ALL 
SELECT id, event_date As date, title, state FROM conferences 
order by id asc, date desc