我需要从它的第一个字母中得到两个表的查询。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,只是标签,以找到更多的结果从更多的人工智能。如果它让你感到不安,那就是了。 –