0

章 ID の基本テーブルから 2 つの配列を取り出しました。1 つの配列は、チャプターが 1 から 6 の間にある状態にあります。同様に、別の配列は、同じテーブルからチャプターが 7 から 12 の間にある状態にあります。

私の最初のクエリはどこですか

$sql1 = 'SELECT s.section_number, s.title,n.description,s.global_order_id, c.commentary FROM section as s 
                INNER JOIN note as n 
                INNER JOIN commentary as c ON s.global_order_id=n.global_order_id and c.global_order_id=n.global_order_id 
                where n.user_id='.Yii::app()->user->id.' and s.chapter_id Between 1 and 6';

そして2番目のクエリは

$sql2 = 'SELECT s.section_number, s.title,n.description,s.global_order_id, c.commentary FROM section as s 
                INNER JOIN note as n 
                INNER JOIN commentary as c ON s.global_order_id=n.global_order_id and c.global_order_id=n.global_order_id 
                where n.user_id=' . Yii::app()->user->id . ' and s.chapter_id Between 7 and 12';

すべて同じですが、章ごとにタイトルが異なります。

配列のマージを行うと、1 つのタイトルのみが表示されますが、二重配列を単一にして両方のタイトルを表示したいと考えています。どうすればできますか?

前もって感謝します...

4

1 に答える 1

1

UNION(暗黙の個別) またはUNION ALL次のような 2 つのクエリを使用して、MySQL で直接これを行うことができます。

SELECT 
  s.section_number,  
  s.title,
  n.description,
  s.global_order_id, 
  c.commentary 
FROM section as s 
INNER JOIN note as n 
INNER JOIN commentary as c  ON s.global_order_id = n.global_order_id 
                           and c.global_order_id = n.global_order_id 
where n.user_id = '.Yii::app()->user->id.' 
  and s.chapter_id Between 1 and 6
UNION ALL
SELECT 
  s.section_number, 
  s.title,
  n.description,
  s.global_order_id, 
  c.commentary 
FROM section as s 
INNER JOIN note as n 
INNER JOIN commentary as c  ON s.global_order_id = n.global_order_id 
                           and c.global_order_id = n.global_order_id 
where n.user_id=' . Yii::app()->user->id . ' 
  and s.chapter_id Between 7 and 12;

次に、このクエリのみを実行すると、両方の結果セットがこのクエリからの 1 つの配列になります。

于 2013-02-17T06:55:56.863 に答える