#mysql
#mysql
Вопрос:
У меня есть два представления.
просмотр Coconut. Это я получил из таблицы, которая показывает полную сумму, потраченную человеком на покупку кокосовых орехов.
--------- ---------
| 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 |
---------------------
Это означает, что я хочу, чтобы были показаны все номера бросков. Количество любого номера рулона, отсутствующего во втором представлении, должно рассматриваться как null в выходных данных.
Ответ №1:
Вы пробовали ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ?
SELECT * FROM coconut v1 FULL JOIN coconut2 v2 ON v1.RollNo = v2.RollNo
В идеале вы должны называть столбец Coconut2 как Coconut!
Ответ №2:
После некоторых попыток я получил этот ответ.
select c.RollNo,c2.coconut from coconut c left join coconut2 c2 on c.ROllNo=c2.RollNo;