2013-07-30 6 views
5

У меня разные таблицы с одинаковой структурой, и я хотел бы присоединиться к ним одним из своих столбцов.SQL Присоединиться к двум таблицам без связей

Проблема в том, что они не обмениваются информацией в этой колонке.

Table 1 - Type A: 

Name | Value 

Table 2 - Type B: 

Name | Value 

Результирующая таблица:

(в одном столбце)

nameFromA 

nameFromB 
... 

До сих пор я пытался:

SELECT TABLE1.NAME, TABLE2.NAME 
FROM TABLE1, TABLE2 
WHERE TABLE1.NAME = 'SearchQuery' 
OR TABLE2.NAME = 'SearchQuery' LIMIT 2; 

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

+2

показать нам свои данные! –

+0

Спасибо за ответ. Что именно вам нужно? Моя база данных уже построена. Он имеет 21 таблицу по 30 столбцов. –

ответ

6

Вы пробовали?

SELECT TABLE1.NAME 
FROM TABLE1 
WHERE TABLE1.NAME = 'SearchQuery' 

UNION 

SELECT TABLE2.NAME 
FROM TABLE2 
WHERE TABLE2.NAME = 'SearchQuery'; 

Вы можете использовать UNION ALL, если вы не хотите, чтобы исключить повторяющиеся значения.

Чтобы ограничить набор результатов вы можете сделать что-то вроде этого:

SELECT * FROM (HERE GOES ABOVE QUERY) LIMIT 2; 
+0

Возможно, «ВСЕ», я просто не могу поместить «UNION» и «ALL» рядом друг с другом в мои сообщения из-за брандмауэра ... :( –

+0

@GoatCO да, если он хочет, чтобы значения повторялись, что вы имеете в виду с вашим брандмауэром – letiagoalves

+0

Perfect. Спасибо! –

0

Проблема заключается в том, что они не обмениваются информацией в этой колонке.

Если они не разделяют никакой информации в колонке вы хотите присоединиться, объединение является meaningless.


Простой присоединиться будет выглядеть следующим образом:

SELECT Name FROM Table1 t1 
JOIN Table2 ON (t1.Name=t2.Name) 
Смежные вопросы