2 votes

Sélectionnez la fusion de deux tableaux avec un entre chaque

J'ai cherché comment réaliser cela, mais je ne sais même pas comment cela s'appelle (pour le rechercher). Voici donc ce que j'ai :

http://i45.tinypic.com/2zzqjco.png

Les données des tableaux sont les suivantes :

\[Products\]
ID -  Name
 1 - Apple
 2 - Banana

\[Storehouses\]
ID  -    Name
 1  -  General
 2  -   Other

\[Stocks\]
Product - Storehouse - Stock
    1   -     1      -  4
    1   -     2      -  4
    2   -     1      -  5

Here I want get all the products on 'Storehouse' = '2' 
but if not exists return 'null' or '0' And what I pretend to get is:

\[SELECT\]
Product  -  Stock
   1     -    4
   2     -    null OR '0'

Je ne sais pas quelle déclaration utiliser, il me faut donc au moins un indice. Merci.

3voto

John Woo Points 132738
SELECT  a.ID,
        a.Name,
        COALESCE(b.Stock, 0) Stock
FROM    Products a
        LEFT JOIN   stocks b
            ON  a.ID = b.Product AND
                b.StoreHouse = 2

Pour en savoir plus sur les jointures, veuillez consulter le lien ci-dessous :

Enfin, stockez la quantité du produit comme INT pas VARCHAR .

RÉSULTAT

╔════╦════════╦═══════╗
║ ID ║  NAME  ║ STOCK ║
╠════╬════════╬═══════╣
║  1 ║ Apple  ║     4 ║
║  2 ║ Banana ║     0 ║
╚════╩════════╩═══════╝

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X