-3

同じ数の列を持つ 2 つのクエリを実行したいと考えています。これが私のクエリです。結果を得るのを手伝ってください:

SELECT  A.* 
FROM (SELECT * 
      FROM yh5lw_onlinecourse 
      WHERE state = 1 
      ORDER BY id DESC) A 
union 
SELECT A1.* 
FROM (SELECT * 
      FROM yh5lw_practicetest 
      WHERE state = 1 
      ORDER BY id DESC) A1
4

1 に答える 1

1

私はあなたがこれを望んでいると思います:

SELECT * FROM 
  (SELECT A.id as id, A.field1 as outputname1, A.field2 as outputname2, ... and so on 
  FROM yh5lw_onlinecourse A
  WHERE state = 1 
  UNION
  SELECT A1.*
  FROM yh5lw_practicetest A1
  WHERE state = 1) myUnion
order by myUnion.id DESC

注意を払う:

UNION ALL の代わりに UNION を使用すると、重複した値がすべて破棄されます。

このようにして yuor 出力テーブルに名前を付けたため、最初のクエリにはエイリアスが必要です。2 番目のクエリ (UNION の後) では * ワイルドカードを使用できます (ただし、フィールドの数は同じでなければなりません)。

于 2013-10-17T11:00:24.583 に答える