それを考え出した、以下の解決策!
次の構造を使用して、2 つのテーブルを持つデータベースからのデータが取り込まれている HTML テーブルがあります。
Table 1:
------------------------------
|id|data|other_data|more_data|
------------------------------
Table 2:
--------------------------------
|id|entryId|fileType|other_data|
--------------------------------
これら 2 つのテーブルを同様に結合しています。
SELECT * FROM table1 LEFT JOIN table2 ON table2.entryId = table1.id
サンプルリターン:
------------------------------------------------------------
|id|data|other_data|more_data|id|entryId|fileType|other_data|
-------------------------------------------------------------
|1 |....|..........|.........|1| 1 |file1 |..........|
|1 |....|..........|.........|2| 1 |file2 |..........|
|2 |....|..........|.........|3| 2 |file1 |..........|
|2 |....|..........|.........|4| 2 |file2 |..........|
|3 |....|..........|.........|5| 3 |file1 |..........|
|4 |....|..........|.........|6| 4 |file2 |..........|
fileType
いずれの場合も、少なくとも 1 つの結果が期待されます。通常は、フィールドに基づいて並べ替えたい 2 つの結果です。fileType は または のいずれfile1
かfile2
です。
<table>
<tr>
<td>file1 data here</td>
<td>file 2 data here</td>
</tr>
</table>
結果に file1 または file 2 がない場合は、ダッシュ (-) を挿入しますが、常にそのテーブルを同じ方法で同じ順序で構造化しておいてください。どうすればこれを達成できますか? 単純な if/else 構文を試しましたが、ロジックが間違っていて、データが順不同で返されます。実用的なソリューションに頭を悩ませています。
while(docs.next) {
if(docs.getString("fileType").equals("file1")) {
.....<td>file 1 data</td>
}
else if(docs.getString("fileType").equals("file2")){
.....<td>file 2 data</td>
}
}
いつものように、あなたの助けは大歓迎です!
**わかりました、ありがとう!解決:
私はロジックを2つのクエリに分割し、あなたが提案したものを使用しました:結果が存在する場合は実際の値を変更します-ループの後、結果を含む表のセルを出力します**