3

同じ列名を持つ 2 つのテーブルの結果を取得する 2 つの Select クエリがあります。

SELECT 
    labels.langjrd,
    labels.id,
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'FRE%'
;

SELECT
    labels.langjrd,
    labels.id,
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'ENG%'
; 

クエリを実行するときに、すべての結果を 1 つのテーブルに入れたいと考えています。ユニオンクエリについて読みましたが、試してみるとうまくいきませんでした。すべての重複データを上書きしたくありません。最初の選択結果の下部に 2 番目の選択結果を追加したいだけです。

4

1 に答える 1

11

次のように、2 つのクエリの結果を組み合わせることUNION ALLができます。

SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
  labels.langjrd LIKE  'FRE%'
UNION ALL
SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
   labels.langjrd LIKE 'ENG%';

どちらが似たようなことをするかについて読みましUNIONたが、重複する結果を除外します。と似てUNION ALLいますが、同じではありません。

ただし、実際には同じテーブルからまったく同じ列をクエリしているため、2 つの条件をwhere句に入れ、 を使用してそれらを分割できますor。そうすれば、いずれかの条件に一致するすべてのレコードを取得できます。

SELECT 
  labels.langjrd,labels.id,labels.lcphrase 
FROM 
  labels 
WHERE 
  labels.langjrd LIKE 'FRE%' OR
  labels.langjrd LIKE 'ENG%';
于 2013-07-24T12:56:38.127 に答える