我只能将此查询应用于一个表,我想将它应用于一个临时表中的 5 个表,并按字母顺序制作记录。因为它有超过 5000 条记录的卡住问题,解决方案是在开始“一封信”时应用记录 在“b 字母”之后 .... 到结尾,例如“z 字母”
阿曼达 安娜贝尔 . . . 飞艇 赞比亚
重要的是第一个字母应该按字母顺序排列
不久我想创建一个临时表并在第一个字母上按字母顺序应用查询。我该怎么做?
UPDATE
names INNER JOIN
(SELECT n1.id, n1.name, count(n2.id)+1 cnt
FROM names n1 INNER JOIN names n2
ON n1.name=n2.name AND n1.id>n2.id
GROUP BY n1.id, n1.name) s
ON names.id = s.id
SET
names.name = CONCAT(names.name, '.', s.cnt)
最佳答案
如果您想从多个表中收集数据,我会使用 UNION 或者 - 如果您不想/不需要过滤掉重复项 - UNION ALL(这应该会快一点)。
例子:
SELECT col1, col2
FROM table1
UNION ALL
SELECT col3, col4
FROM table2
如果你想要它排序,这就是方式(如果我没记错的话)
SELECT col1 as column1, col2 as column2
FROM table1
UNION ALL
SELECT col3 as column1, col4 as column2
FROM table2
ORDER BY column1
如果您遇到性能问题,请考虑将临时表设为实际表。您可以在(重新)填充之前通过简单地截断它来“清理”它,然后您可以对要添加的每个表使用插入查询。无需对其进行排序,因为您只需在表上执行 SELECT/ORDER BY。
如果以上内容对您没有帮助,也许您可以添加一个示例,说明您从哪些数据开始以及想要的结果?
关于mysql - 如何按字母顺序查询多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962493/