Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL combina a visão de duas tabelas com diferentes números de registros de entrada


Você pretendia criar uma união de SALE e EXPENSE mas acabou criando uma junção. Você mencionou que os dados de SALE está bem , mas isso também não é verdade.

Consulte este tutorial para aprender um pouco sobre junções. Sua consulta é aproximadamente assim:
select Sale.Date,Sale.Description,Expense.Description,Sale.Amount,Expense.Amount 
from sale,expense 
where Sale.Date = Expense.Date and
Expense.Date='2014-09-01';

Esta é a sintaxe para uma junção muito parecida com a do exemplo no link acima.

O que você precisa fazer é um UNION operação nas linhas de ambas as tabelas. Veja [este tutorial] em UNION operações no MySQL. A consulta que você precisa está abaixo:
select Sale.Date as Date,Sale.Description as SaleDescription,      
null as ExpenseDescription, Sale.Amount as SaleAmount, null as ExpenseAmount
from Sale where Sale.Date ='2014-09-01'
UNION ALL
select Expense.Date as Date, null as SaleDescription,      
Expense.Description as ExpenseDescription, null as SaleAmount, Expense.Amount as ExpenseAmount
from Expense where Expense.Date ='2014-09-01';