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?
高洛峰
高洛峰 2017-06-05 11:08:00
0
2
460
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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(2)
刘奇

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

漂亮男人

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage