【发布时间】:2013-10-12 15:30:12
【问题描述】:
提前感谢任何帮助!
我有一个包含三个表的数据库,exp 表、var 表和 val 表。
exp 表
实验ID
字段1
字段2
字段3
等等……
变量表
变量ID
字段1
字段2
字段3
实验ID
等等。
验证表
价值标识
字段1
字段2
字段3
变量ID
等等……
这些表具有一对多的关系,这意味着每个 exp 有许多 var,每个 var 有许多 val。
所以我编写了一个查询,它将基于 PK 和 FK 连接表。
SELECT experiments.experimentid, experiments.field1, variable.variableid, variable.field1, value.valueid, value.field1
FROM exp table
INNER JOIN var table
ON variable.experimentid=experiments.experimentid
INNER JOIN val table
ON value.variableid=variable.variableid
我的输出看起来像这样(缩写)
Experimentid | field1 | variableid | field 1 | valueid | field 1
1 | homepage | 1 | basket | 1 | true
1 | homepage | 1 | basket | 2 | true
1 | homepage | 2 | cart | 3 | false
我的问题是当我输出结果时,我只想显示实验 field1 一次。例如,您会注意到我有 3 个结果,都与“主页”相关联。好吧,我只希望主页显示一次,但输出该实验的众多变量和值。我怎样才能做到这一点?我希望我的数据库架构不会太神秘……信息有些敏感。
更新:
我希望我的输出看起来像这样(基于上面的表格数据)。 本质上,我只希望主页显示一次,然后输出相关的变量 ID 和值 ID。不知怎的,我无法得到
<table>
<tr><td colspan=2>Homepage</td></tr>
<tr><td>Basket</td><td>cart</td></tr>
<tr><td>True</td><td>false</td></tr>
<tr><td>True</td><td>null</td></tr>
</table>
【问题讨论】:
-
你说
For example, you'll notice I have 3 results, all associated with "homepage". Well, I only want homepage to be displayed once。为此您必须申请:group by field1,然后您将只有 1 个结果 -
如果您关心它的外观,您不应该只打印来自 DB 客户端的输出,而应该编写一个执行格式化的应用程序。也许您可以向我们展示您对输出的想象?
-
@Szocske 刚刚用输出更新了我的问题。如果您希望我输出从数据库中获得的实际结果,请告诉我……这可能比我提供的缩写示例更好。
标签: php html sql join inner-join