提前感谢任何帮助!
我有一个数据库,有三个表,exp表,var表和val表。
经验表
实验标识
字段1
字段2
字段3
等。。。
变量表
变量标识
字段1
字段2
字段3
实验标识
等。。
价值表
值ID
字段1
字段2
字段3
变量标识
等。。。
这些表具有 1 对多的关系,这意味着每个 exp 有许多变量,每个变量有许多 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
我的问题是,当我输出结果时,我只想显示一次实验场1。 例如,您会注意到我有 3 个结果,都与"主页"相关联。 好吧,我只希望主页显示一次,但输出该实验的大量变量和值。 我怎样才能做到这一点? 我希望我对我的数据库架构不是太神秘......信息有些敏感。
更新:
我希望我的输出看起来像这样(基于上面的表格数据)。从本质上讲,我只希望主页显示一次,然后变量 id 和 valueid 的输出次数与它们相关的次数一样多。 不知何故我无法得到
<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>
我曾经使用过这个javascript函数来连接/组合所有垂直相邻的行,具有相同的值:
<script>
function joinRows() {
var table = document.getElementById("myTable");
for (var i = table.rows.length-1; i>=0; i--) {
row = table.rows[i];
for (var j = row.cells.length-1; j>=0 ; j--) {
col = row.cells[j];
if(col.innerHTML==table.rows[i-1].cells[j].innerHTML) {
var addRows = table.rows[i].cells[j].rowSpan;
table.rows[i].deleteCell(j);
table.rows[i-1].cells[j].rowSpan = table.rows[i-1].cells[j].rowSpan + addRows;
}
}
}
}
</script>
下面的 html 代码来测试它:
<table id="myTable" border="1">
<tr>
<td id="td.1.1">1.1</td>
<td id="td.1.2">2.2</td>
<td id="td.1.3">1.3</td>
<td id="td.1.3">1.4</td>
</tr>
<tr>
<td id="td.2.1">1.1</td>
<td id="td.2.2">2.2</td>
<td id="td.2.3">2.3</td>
<td id="td.1.3">2.4</td>
</tr>
<tr>
<td id="td.2.1">1.1</td>
<td id="td.2.2">3.2</td>
<td id="td.2.3">2.3</td>
<td id="td.2.3">3.4</td>
</tr>
<tr>
<td id="td.2.1">4.1</td>
<td id="td.2.2">4.2</td>
<td id="td.2.3">4.3</td>
<td id="td.2.3">4.4</td>
</tr>
</table>
<script>
//joinRows();
</script>
<br>
<button type="button" onclick="joinRows()">join cells</button>