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
你where条件写的右边的表,当然查不出来拉,右表为空的时候条件字段也为空,被你where筛选掉了。
我也遇到过这种情况,是你的where条件筛选掉了。解决办法,把写在where里的条件追加在on里面!
where是对连表后的结果集进行筛选,但是on里面的条件如果为假,左表的数据会返回,右表全为空