我有一個SQL查詢工作正常的程度。MySQL - 排除行如果沒有行存在從左外部連接
LEFT OUTER JOINs可以正常工作,但是如果mdl_modules或mdl_resource中沒有記錄,它會出現NULL。
如何從mdl_course_modules中排除記錄WHERE LEFT OUTER JOIN中沒有記錄?
我認爲我會使用ISNULL(),但不能確定正確的語法與我的查詢合併。
這裏是我的查詢:
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", "cm.id AS theid, m.name AS mname, r.name AS resourcename, r.summary AS resourcesummary,
FROM_UNIXTIME(cm.added, '%D %M %Y') AS dateadded")."
FROM mdl_course_modules cm
LEFT OUTER JOIN mdl_modules m on cm.module = m.id
LEFT OUTER JOIN mdl_resource r on cm.instance = r.id
WHERE m.name = 'resource' AND cm.visible = 1
$scourse
$sWhere
$sOrder
$sLimit
使用內部連接而不是外部連接。瞭解[SQL連接](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)。 – eggyal
輝煌,謝謝。說實話,我從來沒有看過SQL連接。 – Codded