2010-12-06 6 views
0

Je sais comment obtenir un seul enregistrement de plusieurs tables en utilisant Join. Comment obtenez-vous plusieurs enregistrements?MySQL Join déclaration

par exemple

Tableau: Catégories

id 
name 
description 

Tableau: some_table

id 
name 
content 
category_id 

Comment pourrais-je prolonger la requête de base ci-dessous pour tirer tous les enregistrements à partir de toutes les catégories?

SELECT c.id, c.name as category_name FROM categories AS c 
+0

Comment voulez-vous obtenir un seul enregistrement de plusieurs tables? –

+0

SELECT s.id, s.name, s.content, c.name comme category_name FROM some_table AS s LEFT JOIN catégories comme c ON s.category_id = c.id WHERE s.id = 1 – JasonS

+0

Cela permettrait d'obtenir un seul enregistrement. Je veux obtenir toutes les catégories et tous les enregistrements associés à chaque catégorie. – JasonS

Répondre

2

La jointure exacte dépend de vos besoins, mais ce qui suit montrera toutes les données de la catégorie et some_table où il y a au moins une ligne de some_table qui correspond à la valeur dans la catégorie. Les catégories vides ne seront pas affichées. vous pouvez utiliser un LEFT JOIN à la place si vous souhaitez afficher des enregistrements de catégorie vides avec des valeurs NULL pour les enregistrements qui proviendraient sinon de la table some_table.

SELECT * 
FROM categories c 
INNER JOIN some_table st ON (c.id = st.category_id);