8
votes

Rejoindre gauche avec condition pour la bonne table dans mysql

J'essaie d'envelopper ma tête autour de cette question, mais je ne fais pas beaucoup de progrès. Mon objectif est de faire une joindre à gauche entre deux tables avec des critères de la bonne table. J'aimerais voir la liste de tous les produits et tarifs de la journée en cours, même s'il n'y a pas de rang de prix pour la journée en cours. Voici un exemple du code:

SELECT products.id, products.name, prices.price
FROM products LEFT JOIN prices
ON products.id = prices.id
WHERE prices.date = CURRENT_DATE


0 commentaires

3 Réponses :



1
votes
SELECT id,
       name,
       (SELECT price
          FROM prices
         WHERE id = products.id
           AND prices.date = CURRENT_DATE
       ) AS price,
       (SELECT price
          FROM prices
         WHERE id = products.id
           AND prices.date = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)
       ) AS price_tomorrow
  FROM products

0 commentaires

8
votes

Réponses fortes ci-dessus. Ajout à la réponse des poneys OMG ... avoir des critères de table 'droit' dans l'original dans lequel l'instruction tourne essentiellement la jointure extérieure gauche dans une jointure intérieure. Juste une manière différente de la regarder cela pourrait aider.


0 commentaires