Php 查询和组合不同的表
我有三个要查询的数据表,但根据一个公共字段(日期字段)将它们分组在一起。三个表的架构如下所示: 糖桌Php 查询和组合不同的表,php,jquery,mysql,Php,Jquery,Mysql,我有三个要查询的数据表,但根据一个公共字段(日期字段)将它们分组在一起。三个表的架构如下所示: 糖桌 Name Type sugar_id (Primary) int(11) user_id (Foreign Key) int(11) read_date date read_time time reading int(11) 压力表 Name T
Name Type
sugar_id (Primary) int(11)
user_id (Foreign Key) int(11)
read_date date
read_time time
reading int(11)
压力表
Name Type
pressure_id (Primary) int(11)
user_id (Foreign Key) int(11)
read_date date
read_time time
systolic int(11)
diastolic int(11)
膳食表
Name Type
dietar_id (Primary) int(11)
user_id (Foreign Key) int(11)
entry_date date
entry_time time
quantity varchar(64)
food varchar(64)
notes varchar(1000)
如前所述,我希望在所有三个表中按日期字段分组(糖和压力中的read\u date
,饮食中的entry\u date
)
我想做的是,对于每个日期,在每个表中返回一个列表项(如果有相应表的条目),然后返回一个列表,其中包含共享相同日期的每一行的列表项。例如:
<ul>
<li>
Sugar
<ul>
<li>[reading] taken at [time]</li>
</li>
<li>
Pressure
<ul>
<li>[systolic]/[diastolic] taken at [time]</li>
<li>[systolic]/[diastolic] taken at [time]</li>
</ul>
</li>
<li>
Dietary
<ul>
<li>[quantity] [food] eaten at [time]</li>
</ul>
</li>
</ul>
-
糖
- [阅读]于[时间]拍摄
-
压力
- [时间]
- [时间]
-
饮食的
- 在[时间]吃的[数量][食物]
我最初的想法是创建一个存储DOM元素的集合,逐个查询每个表,遍历每一行,检查集合中是否存在日期,如果存在,然后将父项附加到集合中的相应项,如果没有,则在数组中创建一个新项,该项将日期存储为键,并将父项创建为值
然后我开始想,我可能只用SQL就可以做到这一点。但是,我的SQL没有那么强大,老实说,我不确定在查询中返回DOM是否是最好的方法
所以我要问你们两个问题。首先,我应该走哪条路:使用PHP/jQuery或SQL构建DOM?第二,如果答案是后者,那么考虑到我的日期字段的名称不同,并且表的模式差异足以使联合变得复杂,我应该如何解决这个问题
我使用的语言有:jQuery 3.4.1、PHP7.3.0和MySQL(尽管我不确定版本)。使用内部连接查询按用户id选择记录,并使用分组按函数对记录表进行排序。用户id,表。读取日期我真的不会尝试在SQL中生成DOM。在PHP(或任何理解循环的语言)中,这将容易得多。我可以看到,没有表间连接,它们只有用户ID