我有一个sql查询的问题,我想继续与php。以下是我的数据库结构:
表:截面
+------------+---------------+-----------------+--+--+
| section_id | section_titel | section_text | | |
+------------+---------------+-----------------+--+--+
| 1 | Section One | Test text blaaa | | |
+------------+---------------+-----------------+--+--+
| 2 | Section Two | Test | | |
+------------+---------------+-----------------+--+--+
| 3 | Section Three | Test | | |
+------------+---------------+-----------------+--+--+
表:分项
+----------------+-------------------+------------------+-----+--+
| sub_section_id | sub_section_titel | sub_section_text | sId | |
+----------------+-------------------+------------------+-----+--+
| 1 | SubOne | x1 | 1 | |
+----------------+-------------------+------------------+-----+--+
| 2 | SubTwo | x2 | 1 | |
+----------------+-------------------+------------------+-----+--+
| 3 | SubThree | x3 | 3 | |
+----------------+-------------------+------------------+-----+--+
这些部分通过第二个表中的“sid”链接起来(subï部分)。因此,标题为“subone”的子小节是id为1的节(来自节表)中的子sub。
我使用此查询获取结果:
SELECT section_titel as t1, sub_section_titel as t2
FROM sections LEFT JOIN sub_sections ON section_id = sId;
我的输出如下所示:
Array
(
[0] => Array
(
[t1] => Section One
[t2] => SubOne
)
[1] => Array
(
[t1] => Section One
[t2] => SubTwo
)
)
所以问题是,我得到了表“sections”的多个结果。我需要这样的结果:
Array
(
[0] => Array
(
[t1] => Section One
[t2] => Array
(
[0] => SubOne
[1] => SubTwo
)
)
)
有什么办法吗?提前多谢!
谢谢,j。能源部;)
2条答案
按热度按时间lawou6xi1#
您可以使用php和mysql的组合来实现这一点。将查询更改为:
这将为您提供如下结果表:
(如果你想知道
Section Two
,移除HAVING t2 IS NOT NULL
(来自查询的条件)然后在php中(我假设
mysqli
有联系的$conn
)输出:
4xrmg8kj2#
你有你需要的数据数组。如果您只想以不同的方式呈现它,您可以遍历它并生成您想要的。我在用
$arrayInput
与您提供的结构相同。