2013-09-06 7 views
1

i ont cette

ads
Commander plusieurs tables MySql

ad_id ad_path  ad_explain  date  
1  1.jpg  something  2012 03:35:10 PM 
2  2.jpg  something  2012 03:05:27 PM 


books

book_id  book_name  date 
1    first   2012 03:45:27 PM 
2    second  2012 03:10:27 PM 

et je veux l'obtenir toutes les données de ces deux tables et les commandez par dater comme:

book_id  book_name  ad_id ad_path  ad_explain  date 
          2  2.jpg  something  2012 03:05:27 PM 
2    second            2012 03:10:27 PM 
          1  1.jpg  something  2012 03:35:10 PM 
1    first            2012 03:45:27 PM 
+0

travail Pouvez-vous poster la structure de Teh Tableau de destination. Vous attendez-vous à ce que chaque ligne des trois tables source génère une ligne distincte dans la destination ou souhaitez-vous combiner les données des trois sources dans une ligne de destination? –

Répondre

0

Vous allez vouloir des jointures SQL, mais vous avez besoin de colonnes communes pour vous joindre. Les livres et les request_books peuvent être joints sur book_id, mais les annonces ne semblent pas avoir de colonne commune avec quoi que ce soit (sauf la date, mais cela semble une cible peu probable), donc vous ne seriez pas capable d'apporter ça facilement . Quel est votre but en voulant que les trois tables soient mélangées ensemble, quand il semble que les annonces ne correspondent pas au groupe?

+0

Vous supposez que l'OP a besoin de JOINS, quand il/elle peut vouloir UNIONS. La question doit être clarifiée avant qu'une réponse ne soit donnée. –

2

Vous pouvez le faire avec UNION:

SELECT book_id, book_name, null as ad_id, null as ad_path, null as ad_explain, date 
FROM books 
UNION 
SELECT null, null, ad_id, ad_path, ad_explain, date 
FROM ads 
ORDER BY date 

Voir this fiddle par exemple

+0

Vous devez ajouter 'ordre par coalesce (ad_id, book_id) desc, date' pour obtenir le bon ordre –

+0

Je peux voir que j'ai raté la commande par date, mais pourquoi le coalesce? –

+0

J'ai fait l'hypothèse que l'op voulait entrelacer le livre et les dossiers publicitaires et ne pas compter uniquement sur la date. Par Je pourrais avoir vraiment tort sur ce –