在mysql中从另外两个派生一个表

时间:2016-10-12 11:50:55

标签: mysql

我有两种观点。

查看椰子。我从表中得到了这个,显示了一个人花在购买椰子上的全部金额。

+---------+---------+
| RollNo  | Coconut |
+---------+---------+
| 341401  |    NULL |
| 341402  |    NULL |
| 341403  |    NULL |
| 341405  |      30 |
| 341406  |    NULL |
| 341407  |    NULL |
| 341408  |      30 |
| 341409  |    NULL |
---------------------

查看coconut2。这是我从同一张桌子得到的,但约会有约束。

+---------+----------+
| RollNo  | Coconut  |
+---------+----------+
| 341405  |       20 |
| 341408  |       15 |
+---------+----------+

现在我希望最终输出像

+---------+---------+
| RollNo  | Amount  |
+---------+---------+
| 341401  |    NULL |
| 341402  |    NULL |
| 341403  |    NULL |
| 341405  |      20 |
| 341406  |    NULL |
| 341407  |    NULL |
| 341408  |      15 |
| 341409  |    NULL |
---------------------

这意味着我希望显示所有卷号。在第二个视图中不存在任何滚动编号的数量应在输出中视为空。

2 个答案:

答案 0 :(得分:0)

你试过FULL OUTER JOIN吗?

SELECT * FROM coconut v1 FULL JOIN coconut2 v2 ON v1.RollNo = v2.RollNo

理想情况下,您应将椰子列命名为椰子!

答案 1 :(得分:0)

经过一段时间的努力,我得到了这个答案。

select c.RollNo,c2.coconut from coconut c left join coconut2 c2 on c.ROllNo=c2.RollNo;