2010-12-12 4 views
0

Est-ce que quelqu'un sait la meilleure solution pour rejoindre cette requête en 1 requête plutôt que 2, car je ne peux pas le faire fonctionner que vous voyez.PHP/MySQL Join Query

function fn_order_category_get_order_info($cat_id) 
{ 
    $id1 = db_query("SELECT category_id FROM ?:products_categories WHERE product_id = $cat_id"); 
    $id2 = db_query("SELECT category FROM ?:category_descriptions WHERE category_id = $id1"); 
    return $id2; 
} 

Merci d'avance!

Répondre

2

Essayez ceci:

SELECT 
    pc.category_id, 
    cd.category 
FROM 
    products_categories pc 
    LEFT JOIN 
    category_descriptions cd 
    ON pc.category_id = cd.category_id 
WHERE product_id = $product_id ; 
+0

erreur de base de données: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel correspondant à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'LEFT JOIN category_descriptions cd ON pc.category_id = cd.category_id' à la ligne 2 (1064) Requête invalide: SELECT category_id, category FROM products_categories pc WHERE product_id = 138 LEFT JOIN catégorie_descriptions cd ON pc.category_id = cd.category_id – james

+0

@james Désolé, il suffit de mettre le où à la fin de la requête (édité). –

+0

@styu - il semble que j'obtiens ceci maintenant: Erreur de base de données: La colonne 'category_id' dans la liste des champs est ambiguë (1052) Requête invalide: SELECT catégorie_id, catégorie FROM cscart_products_categories pc LEFT JOIN cscart_category_descriptions cd ON pc.category_id = cd.category_id OERE product_id = 138; – james