Limite les résultats de la table jointe à une ligne

Voici un tableau simplifié de la structure:

TABLE products (
 product_id INT (primary key, auto_increment),
 category_id INT,
 product_title VARCHAR,
 etc
);

TABLE product_photos (
 product_photo_id (primary key, auto_increment),
 product_id INT,
 photo_href VARCHAR,
 photo_order INT
);

Un produit peut avoir plusieurs photos, la première photo de produit pour chaque produit (basé sur le photo_order) est la valeur par défaut de la photo.

Maintenant, j'ai seulement besoin de toutes les photos sur la page de détails du produit, mais sur les pages où je suis liste de plusieurs produits, par exemple un répertoire de produits page, je ne veux afficher la photo par défaut.

Donc ce que je suis en train de faire, est de demander une liste de produits, y compris la photo par défaut pour chaque produit.

De toute évidence, cela ne fonctionne pas, il sera de retour toutes les photos avec l'info-produit dupliqué pour chaque photo:

SELECT p.*, ph.*
FROM products AS p
LEFT JOIN product_photos AS ph
ON p.product_id=ph.product_id
ORDER BY p.product_title ASC

J'ai besoin de comprendre comment faire quelque chose comme ça, mais je ne connais pas la syntaxe (ou si c'est possible)

SELECT p.*, ph.*
FROM products AS p
LEFT JOIN product_photos AS ph
    ON p.product_id=ph.product_id  **ORDER BY ph.photo_order ASC LIMIT 1**
ORDER BY p.product_title ASC

Edit: j'ai trouvé une solution avec l'aide de l'réponses ci-dessous, merci à tous!

SELECT p.*, ph.*
FROM products AS p
LEFT JOIN product_photos AS ph 
    ON p.product_id=ph.product_id
    AND ph.photo_order =
    (
        SELECT MIN(z.photo_order)
        FROM product_photos AS z
        WHERE z.product_id=p.product_id
    )
GROUP BY p.product_id
ORDER BY p.product_title ASC

source d'informationauteur Rob