Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL combina la visualizzazione di due tabelle con un numero diverso di record di voci

Volevi creare un'unione di SALE e EXPENSE ma ha finito per creare un join. Hai menzionato che i dati di SALE va bene , ma neanche questo è vero.

Fare riferimento a questo tutorial per imparare qualcosa sui join. La tua domanda si legge più o meno così:

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';

Questa è la sintassi per un join molto simile a quella nell'esempio nel collegamento sopra.

Quello che devi eseguire è un UNION operazione sulle righe di entrambe le tabelle. Vedi [questo tutorial] su UNION operazioni in MySQL. La query di cui hai bisogno è di seguito:

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';