-1
我有一個查詢,我試圖讓另一個表內的每個用戶的值到結果中的一個輸出行。爲每個用戶連接MySQL查詢爲單行
SELECT DISTINCT table1.ID, table1.username, table1.display_name,
CASE WHEN table2.meta_key = 'vgm' THEN table2.meta_value END VGM,
CASE WHEN table2.meta_key = 'year_completed' THEN table2.meta_value END 'Year Completed',
CASE WHEN table2.meta_key = 'status' THEN table2.meta_value END Status,
CASE WHEN table2.meta_key = 'military_grade' THEN table2.meta_value END 'Military Grade'
FROM table1, table2
WHERE table1.ID = table2.user_id
我最終得到的結果如下。如果可能的話,我希望所有的用戶信息都在一行中。任何人有任何建議?謝謝。
<table>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
</tr>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
<td>NULL</td>
<td>NULL</td>
<td>Baja</td>
<td>NULL</td>
</tr>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
<td>NULL</td>
<td>112</td>
<td>NULL</td>
<td>NULL</td>
</tr>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
<td>Subt</td>
</tr>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
<td>No</td>
<td>NULL</td>
<td>NULL</td>
<td>NULL</td>
</tr>
</table>
表1是作爲這種:
<table>
<tr>
<td>ID</td>
<td>NAME</td>
<td>EMAIL</td>
</tr>
<tr>
<td>3</td>
<td>user1</td>
<td>Username Last</td>
</tr>
<tr>
<td>4</td>
<td>user2</td>
<td>Username2 Last2</td>
</tr>
</table>
表2是這樣:
<table>
<tr>
<td>ID</td>
<td>USER_ID</td>
<td>META_KEY</td>
<td>META_VALUE</td>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>Key 2</td>
<td>Value 2</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>Key 2</td>
<td>Value 2</td>
</tr>
</table>
我失去了一些東西在這裏?你的結果是不是已經排在一行? –
如果您運行代碼snippit,則輸出對於一個用戶有4個不同的行。它應該只有一行,沒有NULL值。另一個表在它們自己的行上有多個值,我試圖將所有用戶信息壓縮到一個錶行中。 –
我明白了,你可以請你發表table1和table2的表格模式和一些示例數據。我認爲這可以通過使用連接而不是從兩個表中解決。在提供新的查詢之前,我需要首先查看請求的信息。 –