我想知道爲什麼這個查詢仍然完美。我認爲WHERE子句總是以WHERE
開頭?特有的行爲:AND沒有在哪裏仍然有效
SELECT `persons`.*
FROM `persons`
LEFT JOIN `team_memberships`
ON (`team_memberships`.`participant` = `persons`.`id`)
JOIN `teams`
ON (`teams`.`id` = `team_memberships`.`team`)
JOIN `departments`
ON (`departments`.`id` = `teams`.`department`)
JOIN `areas`
ON (`areas`.`id` = `departments`.`area`)
JOIN `companies`
ON (`companies`.`id` = `areas`.`company`)
[NO WHERE HERE]
AND `persons`.`id` = ?
也許連接充當隱式的WHERE?在T-SQL中,連接可以用WHERE子句編寫,所以這可能是相反的行爲。 – 2013-03-20 14:56:12
我不確定,但我認爲AND屬於最後一個JOIN關鍵字: 'JOIN companies ON(companies.id = areas.company)AND persons.id =?'。 – 2013-03-20 14:58:20
好吧,加入AND條件意味着什麼?我應該跳過哪裏?順便說一下,這是偶然發生的,它原本應該在那裏。 – silkfire 2013-03-20 14:59:10