suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - Mysqls Left-Join-Abfrage: Wenn ein Feld in der rechten Tabelle leer ist, warum kann das entsprechende Feld in der linken Tabelle nicht gefunden werden?

SELECT category.c_id,category.c_name,jobs.amount FROM qs_category as category 
LEFT JOIN qs_jobs as jobs ON category.c_id=jobs.trade 
WHERE jobs.addtime >= 1483200000 AND jobs.addtime <= 1498838400 

Dies ist eine Abfrageanweisung. Die Kategorie in der linken Tabelle ist die Klassifizierungstabelle, und die Jobs in der rechten Tabelle sind die Positionstabelle. Ich möchte die Anzahl der Positionen unter jeder Kategorie zählen.
Aber es gibt ein Problem mit den Ergebnissen. Wenn eine Kategorie im Kategoriefeld der Stellentabelle nicht vorhanden ist, das heißt, niemand hat eine Position unter dieser Kategorie hinzugefügt, wird diese Kategorie in der Abfrage nicht angezeigt Ergebnisse.
Aber es liegt auf der Hand, dass bei einem Links-Join die Felder in der linken Tabelle trotzdem angezeigt werden sollten, auch wenn in der rechten Tabelle keine entsprechenden Daten vorhanden sind

高洛峰高洛峰2718 Tage vor441

Antworte allen(2)Ich werde antworten

  • 怪我咯

    怪我咯2017-06-05 11:10:00

    你where条件写的右边的表,当然查不出来拉,右表为空的时候条件字段也为空,被你where筛选掉了。

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-06-05 11:10:00

    我也遇到过这种情况,是你的where条件筛选掉了。解决办法,把写在where里的条件追加在on里面!
    where是对连表后的结果集进行筛选,但是on里面的条件如果为假,左表的数据会返回,右表全为空

    Antwort
    0
  • StornierenAntwort