2
使用Doctrine,我試圖根據從多個表中收集的數據刪除單個表中的記錄。使用Doctrine在MySQL數據庫上刪除多表的語法是什麼?
'companies_groups'是一個連接'公司'到'組'的關聯表。我想刪除鏈接到特定公司的此表中的所有記錄,限制條件是僅刪除鏈接到「公共」組的「companies_groups」記錄。
如果我是純SQL寫這個,它會是這個樣子:
DELETE companies_groups
FROM companies_groups, groups
WHERE companies_groups.companyID = 7
AND companies_groups.groupID = groups.id
AND groups.groupType = 'public'
什麼是原則等價?現在我一直在掙扎和試驗一個小時左右。
目前,我有這樣的:
$query = Doctrine_Query::create()
->delete('Company_group cg')
->from('Company_group cg, Group g')
->where("cg.companyID = ? AND g.groupType = 'public' AND g.id = cg.groupID ", array($companyID));
(我的教訓機型「Company_group」爲「companies_groups」表和「組」的「組」表)
將會產生這SQL:
DELETE FROM companies_groups, groups WHERE (companyid = ? AND grouptype = 'public' AND id = groupid)
你可以看到生成的SQL缺少「companies_groups」 DELETE之間FROM,以及世界盃預選賽被丟棄(意爲「身份證」將是模糊的)。
讓我知道是否有任何額外的信息,我可以提供這將是有益的。