2015-01-03 121 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因爲大多數人誰知道SQL服務器也知道MySQL,只是標籤,以找到更多的結果從更多的人工智能。如果它讓你感到不安,那就是了。 –

回答

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