2016-08-07 10 views
0

Ich brauche einen Weg, um eine Tabelle mit den Ergebnissen einer SELECT-Abfrage zu verbinden, und ich einige Schwierigkeiten konfrontiert, das zu tun ...Join mit SELECT MySQL

Es gibt 3 Tabellen:

food_shops

id, name, slug 

categories_food_shops

id, id_category, id_food_shop 

Kategorien

id, name, slug 

Wie kann ich mit einem Ergebnis zeigen tun: food_shop.id, food_shop.name, categorie.slug basierend auf dem categories_food_shops Tisch? das enthält eine Registrierung des Shops und ihrer Kategorie?

so weit war ich in der Lage, dies zu tun, aber es wird

Unknown column 'fs.id' in 'where clause'

SELECT fs.id, fs.slug, fs.name 
FROM food_shops fs 
JOIN 
(
    SELECT * 
    FROM categories_food_shops cfs 
    WHERE cfs.id_food_shop = fs.id 
) AS cfs ON categories.id = cfs.id_catedory 

Jede Hilfe wäre sehr geschätzt werden, ich bin neu in dieser Aussagen kommen

+0

versuchen, die innere zu bewegen, wo cfs.id_food_shop = fs.id in die on-Klausel? – jdog

+0

Bitte senden Sie einige Beispieldaten und das gewünschte Ergebnis. –

+0

PM 77-1 Ich sagte dort, ich möchte die ID, Name, Schnecke von food_shops und die Schnecke von Kategorien, basierend auf einer Beziehungstabelle (categories_food_shops) – user3159043

Antwort

2

Versuchen Sie folgendes:

SELECT 
    food_shops.id, food_shops.name, categories.slug 
FROM food_shops 

INNER JOIN categories_food_shops 
ON food_shops.id = categories_food_shops.id_food_shop 

INNER JOIN categories 
ON categories_food_shops.id_category = categories.id 

Sie können dann eine WHERE Anweisung am Ende verwenden Lebensmittelgeschäfte mit einem bestimmten ID angezeigt werden, oder mit einem ähnlichen Namen, usw.

+0

Oh, das hat den Trick! Vielen Dank – user3159043

+0

Gern geschehen! Bitte akzeptieren Sie diese Antwort, um die Frage als beantwortet zu markieren. :) –

+0

Ich bettle nicht, es ist eigentlich eine gute Sache Leute zu sehen, die Fragen als beantwortet markieren, da es anderen Benutzern sagt, dass er keine Hilfe mehr bei dieser Frage braucht. Aber ich kann sehen, woher du kommst. –