gpt4 book ai didi

sql - mysql select查询帮助--ORDER BY

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:58 27 4
gpt4 key购买 nike

我正在尝试构建一个选择查询,它将获取 4 个表的所有列,然后按“名称”列(所有表中相同)对结果进行排序和显示。我仍在学习 MySQL 的基本知识。

我发现因为列共享名称“名称”,所以只显示最后一个表的结果。有没有一种方法可以执行此查询以保留所有表中的所有数据?

我应该使用不同的列名吗?共享一个名字似乎更容易,因为每个名字中的信息相同。

SELECT * FROM table_one, table_two, table_three, table_four ORDER BY...

四个表没有连接,结构不同......一些列名是共享的(看起来我应该修复,我现在仍然可以),但每个都有不同数量的列。

谢谢!

最佳答案

如果四个表之间没有关系,请改用UNION:

SELECT a.name
FROM TABLE_ONE a
UNION
SELECT b.name
FROM TABLE_TWO b
UNION
SELECT c.name
FROM TABLE_THREE c
UNION
SELECT d.name
FROM TABLE_FOUR d
ORDER BY name

这里有两个选项 - UNION 较慢,因为它会删除重复项 - 最终列表将是唯一的名称列表。 UNION ALL 更快,因为它不会删除重复项。

要同时从表中获取列,请使用:

SELECT a.*,
b.*,
c.*,
d.*
FROM (SELECT a.name
FROM TABLE_ONE a
UNION
SELECT b.name
FROM TABLE_TWO b
UNION
SELECT c.name
FROM TABLE_THREE c
UNION
SELECT d.name
FROM TABLE_FOUR d) x
LEFT JOIN TABLE_ONE a ON a.name = x.name
LEFT JOIN TABLE_TWO b ON b.name = x.name
LEFT JOIN TABLE_THREE c ON c.name = x.name
LEFT JOIN TABLE_FOUR d ON d.name = x.name

关于sql - mysql select查询帮助--ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320128/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com