0

事前にどんな助けにも感謝します!

exp テーブル、var テーブル、および val テーブルの 3 つのテーブルを持つ DB があります。

expテーブル
experimentid
フィールド
1フィールド2
フィールド3
など...

var テーブル
variableid
フィールド
1 フィールド 2
フィールド 3
実験ID
など..

val テーブル
valueid
field1
field2
field3
variableid
など...

テーブルには 1 対多の関係があります。つまり、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 つの結果があり、すべて「ホームページ」に関連付けられていることがわかります。ええと、ホームページを一度だけ表示したいのですが、その実験のために多数の変数と値を出力します。どうすればこれを達成できますか? DB スキーマについてあまり謎めいていないことを願っています...情報はやや機密です。

アップデート:

出力を次のようにしたいと思います (上記のテーブル データに基づく)。基本的に、ホームページを一度だけ表示したいのですが、変数 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>
4

1 に答える 1

0

この 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>
于 2013-10-15T14:55:08.623 に答える