如何从 JOIN 查询输出结果


How to output results from JOIN query

提前感谢任何帮助!

我有一个数据库,有三个表,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>