2015-01-03 2 views
-3

Мне нужно получить запросы двух таблиц от первых букв.SQL: выбор первых букв строк из двух таблиц

от поисков, я получил следующий запрос:

SELECT substr(latin_name, 1, 1) AS alpha 
FROM singers 
GROUP BY substr(latin_name, 1, 1) 
LIMIT 0 , 30 

и теперь мне нужно, чтобы смешать его с другой таблицей с именем groups

как я могу собрать все первые буквы двух разных таблиц одним запросом ?

+0

UNION ALL ........ ... –

+1

Почему так много людей сохраняют тегирование как 'mysql', так и' sql-server'? Кто-нибудь даже читает всплывающие окна для тегов, которые они выбирают? –

+0

@AaronBertrand cuz большинство ppl, кто знает, что sql-сервер также знает mysql, просто пометки, чтобы найти больше результатов из большего количества ppl. если он вас расстроит. –

ответ

1

Использование UNION Синтаксис: http://dev.mysql.com/doc/refman/5.0/en/union.html

Это, как я хотел бы сделать это:

SELECT LOWER(LEFT(`latin_name`, 1)) 
FROM `singers` 
UNION 
SELECT LOWER(LEFT(`latin_name`, 1)) 
FROM `groups` 
ORDER BY 1 ASC 
+0

Исправлено, спасибо. Я всегда использовал его в круглых скобках, но так лучше. –

+0

@a_horse_with_no_name true, официальное руководство говорит: «Поведение UNION по умолчанию заключается в том, что дублирующиеся строки удаляются из результата. Необязательное ключевое слово DISTINCT не имеет никакого эффекта, кроме значения по умолчанию, поскольку оно также указывает удаление дубликатов строк». –

1

Используйте UNION заявление поэтому:

SELECT ... FROM table1 
UNION 
SELECT ... FROM table2 
Смежные вопросы