MySQL上的3表数据库

时间:2019-03-01 04:43:29

标签: mysql inner-join

是否可以在MySQL上联接3个表,最终输出将在下面显示示例。

表1

Dog     2
Cat     3

表2

Dog     1
Cow     3

表3

Cat     1
Rat     3

最终输出

Dog     3
Cat     4
Rat     3
Cow     3

更新后的输出

Thanks, but how to do if the output is like below.<br><table>
  <tr>
    <th>Animal</th>
    <th>Table 1</th><th>Table 2</th><th>Table 3</th>
  </tr>
  <tr>
    <td>Dog</td>
    <td>2</td><td>1</td><td>0</td>
  </tr>  <tr>
    <td>Cat</td>
    <td>3</td><td>0</td><td>1</td>
  </tr><tr>
    <td>Cow</td>
    <td>0</td><td>3</td><td>0</td>
  </tr>  <tr>
    <td>Rat</td>
    <td>0</td><td>0</td><td>3</td>
  </tr></table>

希望您能帮助我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用union语句将三个表合并在一起,然后像这样从它们中选择:

SELECT
    column1,
    SUM(column2)
FROM
(
    SELECT column1, column2 FROM Table1
    UNION ALL
    SELECT column1, column2 FROM Table2
    UNION ALL
    SELECT column2, column2 FROM Table3
)
GROUP BY column1

如果三个表中的列名不同,则需要为列名加上别名。