使用php从sql数据库创建额外的组合html表
在给这篇文章打上双标记之前,请仔细阅读。我有一个MySQL数据库,有3个表,T1、T2和T3。他们的数据如下: T1: T2: T3: 我想创建以下组合html表:使用php从sql数据库创建额外的组合html表,php,html,sql,Php,Html,Sql,在给这篇文章打上双标记之前,请仔细阅读。我有一个MySQL数据库,有3个表,T1、T2和T3。他们的数据如下: T1: T2: T3: 我想创建以下组合html表: name val1 val2 val3 val4 val5 val6 John 1 2 3 4 5 6 Mary 1 2 - - 4 5 Mark - - 1 2 3
name val1 val2 val3 val4 val5 val6
John 1 2 3 4 5 6
Mary 1 2 - - 4 5
Mark - - 1 2 3 4
我觉得这很复杂。有什么办法吗?没那么复杂 如果MySQL是您更强的语言,那么编写一个查询,将三个表与所需列中的所需值连接到一个数组中 如果PHP是您更强的语言,那么编写三个查询,将每个表中的值选择到不同的数组中。然后将这些数组与所需的列合并到一个数组中 在这两种情况下,您都希望结果是一个数组,每个用户有一个键,该键具有6个值 您可以直接将该结果迭代到html表中
SELECT TX.NAME,
(SELECT val1 FROM T1
WHERE T1.NAME = TX.NAME) AS V1,
(SELECT val2 FROM T1
WHERE T1.NAME = TX.NAME) AS V2,
(SELECT val3 FROM T2
WHERE T2.NAME = TX.NAME) AS V3,
(SELECT val4 FROM T2
WHERE T2.NAME = TX.NAME) AS V4,
(SELECT val5 FROM T3
WHERE T3.NAME = TX.NAME) AS V5,
(SELECT val6 FROM T3
WHERE T3.NAME = TX.NAME) AS V6
FROM (
SELECT NAME FROM T1
UNION
SELECT NAME FROM T2
UNION
SELECT NAME FROM T3) AS TX
我们可以对每个不同的列执行一个子查询。使用union all和group by:
或者,如果您知道t3具有所需的所有行,请使用left join:
我不建议完全加入。创建正确的查询有点棘手,而且很容易出错,从而过滤掉行。通过执行命令I get:1064,您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第3行“T1.name=T2.name上的外部联接T2”附近使用的正确语法MariaDB中没有完整的外部联接,我会改变我的答案。我会改变我的答案。新的命令返回:新的命令返回:约翰·我的回答我的答案。我会改变我的答案。新的命令返回:约翰·1 1