我需要從它的第一個字母中得到兩個表的查詢。SQL:從兩個表中選擇第一個字母的行
從搜索,我得到了下面的查詢:
SELECT substr(latin_name, 1, 1) AS alpha
FROM singers
GROUP BY substr(latin_name, 1, 1)
LIMIT 0 , 30
,現在我需要將它與命名groups
我如何通過一個查詢收集兩個不同的表的所有首字母另一臺上混和?
我需要從它的第一個字母中得到兩個表的查詢。SQL:從兩個表中選擇第一個字母的行
從搜索,我得到了下面的查詢:
SELECT substr(latin_name, 1, 1) AS alpha
FROM singers
GROUP BY substr(latin_name, 1, 1)
LIMIT 0 , 30
,現在我需要將它與命名groups
我如何通過一個查詢收集兩個不同的表的所有首字母另一臺上混和?
使用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
更正,謝謝。我總是用括號括起來,但這種方式更好。 –
@a_horse_with_no_name true,官方手冊說:「UNION的默認行爲是將重複的行從結果中刪除。可選的DISTINCT關鍵字除缺省值外沒有其他作用,因爲它還指定刪除重複行。」 –
因此使用UNION語句:
SELECT ... FROM table1
UNION
SELECT ... FROM table2
UNION ALL ........ ... –
爲什麼這麼多人不斷標記'mysql'和'sql-server'?有人甚至讀過他們選擇的標籤的彈出窗口嗎? –
@AaronBertrand因爲大多數人誰知道SQL服務器也知道MySQL,只是標籤,以找到更多的結果從更多的人工智能。如果它讓你感到不安,那就是了。 –