MySQL select 将来自相同 table 的多行分组
MySQL select grouping multiple rows from same table
我正在尝试创建一个查询,以 select 来自同一 table 的多行,将它们像数组一样分组。
现在我 select 像这样使用 php 对他们进行操作:
$tks = mysqli_query($con,"SELECT * FROM hof ORDER BY tks DESC LIMIT 5");
$top_ths = mysqli_query($con,"SELECT * FROM hof ORDER BY ths DESC LIMIT 1");
$top_tha = mysqli_query($con,"SELECT * FROM hof ORDER BY tha DESC LIMIT 1");
----
我想将它们合并到一个查询中,这样我就得到了一个关联数组。
像这样:
(SELECT * FROM hol ORDER BY tks DESC LIMIT 5) AS tks
UNION
(SELECT * FROM hol ORDER BY ths DESC LIMIT 1) AS top_ths
所以 tks 包含所有 5 行,top_ths 包含 1 行。
可能吗 ?谢谢。
要了解行来自哪个组,请创建附加字段
(SELECT *, 1 as `group` FROM hol ORDER BY tks DESC LIMIT 5)
UNION
(SELECT *, 2 as `group` FROM hol ORDER BY ths DESC LIMIT 1)
我正在尝试创建一个查询,以 select 来自同一 table 的多行,将它们像数组一样分组。 现在我 select 像这样使用 php 对他们进行操作:
$tks = mysqli_query($con,"SELECT * FROM hof ORDER BY tks DESC LIMIT 5");
$top_ths = mysqli_query($con,"SELECT * FROM hof ORDER BY ths DESC LIMIT 1");
$top_tha = mysqli_query($con,"SELECT * FROM hof ORDER BY tha DESC LIMIT 1");
----
我想将它们合并到一个查询中,这样我就得到了一个关联数组。 像这样:
(SELECT * FROM hol ORDER BY tks DESC LIMIT 5) AS tks
UNION
(SELECT * FROM hol ORDER BY ths DESC LIMIT 1) AS top_ths
所以 tks 包含所有 5 行,top_ths 包含 1 行。 可能吗 ?谢谢。
要了解行来自哪个组,请创建附加字段
(SELECT *, 1 as `group` FROM hol ORDER BY tks DESC LIMIT 5)
UNION
(SELECT *, 2 as `group` FROM hol ORDER BY ths DESC LIMIT 1)