Heim  >  Fragen und Antworten  >  Hauptteil

MySQL: Zwei Tabellen, die mithilfe eines Primärschlüssels und eines Fremdschlüssels verknüpft sind. So erhalten Sie alle Datensätze, auch wenn der Fremdschlüssel noch nicht gefüllt ist

<p>Ich hoffe, eine Lösung zu finden</p> <p>Ich habe eine Tabelle mit dem Primärschlüsselbestand</p> <pre class="brush:php;toolbar:false;">stkid (pk), name</pre> <p>Zweite Tabelle (Anteil)</p> <pre class="brush:php;toolbar:false;">Preis, Menge, stkid (fk)</pre> <p>Ich habe diese Abfrage ausgeführt, aber es wurden nur Bestände angezeigt, für die bereits ein Datensatz im freigegebenen Datensatz vorhanden war Ich möchte, dass alle Bestände angezeigt werden, auch wenn im freigegebenen Datensatz keine Datensätze vorhanden sind</p> <pre class="brush:php;toolbar:false;">Name auswählen, 0, Summe(Preis*Menge) / Summe(Menge) als Durchschnitt, Summe(Menge) als Menge Ab Lager, Aktie wobei share.stkid = stock.stkid gruppieren nach (stock.stkid)</pre>
P粉486743671P粉486743671437 Tage vor407

Antworte allen(1)Ich werde antworten

  • P粉038161873

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

    您可以使用LEFT JOIN语句,它会从share表中选择相关行,即使在stock表中没有链接的行也会选择出来。

    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
    

    Antwort
    0
  • StornierenAntwort