结合两个MySQL表

时间:2016-06-22 04:40:09

标签: mysql database join

如果我有这样的表设置:

<table>
  <tr>
    <td>ID</td>
    <td>user_login</td>
    <td>user_pass</td>
    <td>user_nicename</td>
    <td>user_email</td>
    <td>user_url</td>
    <td>user_registered</td>
    <td>user_activation_key</td>
    <td>user_status</td>
    <td>display_name</td>
  </tr>
  <tr>
    <td>1
    <td>user123</td>
    <td>pass123</td>
    <td>Tom J.</td>
    <td>email@email.com</td>
    <td>2015-09-09 04:17:29</td>
    <td>0</td>
    <td>Tom Jones</td>
  </tr>
</table>

另一个表设置如下:

<table>
  <tr>
    <td>umeta_id</td>
<td>user_id</td>
<td>meta_key</td>
<td>meta_value</td>
  <tr>
    <td>1</td>
    <td>1</td>
<td>nickname</td>
<td>T Jones</td>
</tr>
  <tr>
<td>2</td>
<td>1</td>
<td>first_name</td>
<td>Tom</td>
</tr>
  <tr>
<td>3</td>
<td>1</td>
<td>last_name</td>
<td>Jones</td>
</tr>
  <tr>
<td>4</td>
<td>1</td>
<td>description</td>
</tr><tr>
<td>5</td>
<td>1</td>
<td>rich_editing</td>
<td>true</td>
  </tr>
  </table>

是否有一种很好的方法来组合两个表,以便所有匹配用户的元值(user_id = ID)属于单个列。如果我尝试在表a到表b上执行JOIN,它会将所有数据拆分为单独的行。我希望所有新数据都适合单行,因此更容易访问。注意:我无法在此更改表结构。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

使用这些查询解决方案

select u.*,(select group_concat(meta_value) from user_tag where user_id = u.ID) as meta_value_user from user as u where ID = 1;