Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL combine la vue de deux tables ayant un nombre différent d'enregistrements d'entrée

Vous vouliez créer une union de SALE et EXPENSE mais a fini par créer une jointure. Vous avez mentionné que les données de SALE ça va , mais ce n'est pas vrai non plus.

Reportez-vous à ce tutoriel pour en savoir un peu plus sur les jointures. Votre requête se lit à peu près comme suit :

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

Il s'agit de la syntaxe d'une jointure semblable à celle de l'exemple du lien ci-dessus.

Ce que vous devez effectuer est un UNION opération sur les lignes des deux tables. Voir [ce tutoriel] sur UNION opérations dans MySQL. La requête dont vous avez besoin est ci-dessous :

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