Maison  >  Questions et réponses  >  le corps du texte

MySQL : deux tables jointes à l'aide d'une clé primaire et d'une clé étrangère, comment obtenir tous les enregistrements même si la clé étrangère n'est pas encore renseignée

<p>J'espère trouver une solution</p> <p>J'ai une table avec le stock de clé primaire</p> <pre class="brush:php;toolbar:false;">stkid (pk), nom</pre> <p>Deuxième table (partage)</p> <pre class="brush:php;toolbar:false;">prix, quantité, stkid (fk)</pre> <p>J'ai exécuté cette requête mais elle n'a montré que les actions qui avaient déjà un enregistrement dans l'enregistrement partagé Je souhaite que tous les stocks soient affichés même s'il n'y a aucun enregistrement dans l'enregistrement partagé</p> <pre class="brush:php;toolbar:false;">sélectionner le nom, 0, somme (prix*quantité) / somme (quantité) en moyenne, somme (quantité) en quantité du stock, partager où partage.stkid = stock.stkid regrouper par (stock.stkid)</pre>
P粉486743671P粉486743671437 Il y a quelques jours406

répondre à tous(1)je répondrai

  • P粉038161873

    P粉0381618732023-08-10 00:25:56

    Vous pouvez utiliser l'instruction LEFT JOIN, qui sélectionnera également les lignes de la table share表中选择相关行,即使在stock qui ne sont pas liées.

    SELECT
      name,
      0,
      sum(price*quantity) / sum(quantity) as avg,
      sum(quantity) as qty
    FROM stock
    LEFT JOIN share ON share.stkid = stock.stkid
    GROUP BY stock.stkid
    

    répondre
    0
  • Annulerrépondre