2013-07-24 3 views
3

У меня есть два запроса на выбор, которые получают результаты для двух таблиц с одинаковыми именами столбцов.Мне нужно совместить два результата из запроса SQL 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%' 
; 

Когда я выполнить запрос я хочу, чтобы поместить все результаты в одну таблицу. Я читал о запросе соединения, но когда я попробовал, он не сработал. Я не хочу перезаписывать все дубликаты данных, которые просто хочу добавить, чтобы второй результат выбора был добавлен в нижней части результатов первого выбора.

ответ

11

С 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, но не то же самое.

Но поскольку вы на самом деле запрашиваете одни и те же столбцы из одной таблицы, вы можете просто поместить два условия в предложение where и разделить их, используя or. Таким образом, вы получите все записи, соответствующие любому из условий.

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