[英]Delete multiple rows in multiple table using INNER JOIN in mySQL 5 TABLES
[英]delete from multiple table with inner join
我試圖從PHP中的1個SQL查詢中的3個表中刪除記錄。 首先,我嘗試從兩個表中刪除記錄。 這是對此的查詢:
DELETE pa, pr FROM pollanswers pa INNER JOIN pollresults pr ON
pa.PollQuestionId=pr.PollQuestionId WHERE pa.PollQuestionId = '123';
問題是,如果其中一個表中沒有PollQuestionId,那么如何將其與第三個表集成?
謝謝。
您不應該在一個查詢中從多個表中刪除。
您可以使用ON DELETE CASCADE
選項在表上定義外鍵約束。
然后從父表中刪除記錄將從子表中刪除記錄。
請訪問此鏈接: http : //dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
我已經把它想出來了..謝謝你的努力......
這是連接3個表的查詢:
DELETE po, pa, pr FROM posts po
LEFT JOIN pollanswers pa ON pa.PollQuestionId=po.PostId
LEFT JOIN pollresults pr ON pr.PollQuestionId=po.PostId
WHERE po.PostId = '123';
要加入第三個表,您可以添加另一個內部聯接:
DELETE pa, pr FROM pollanswers pa
INNER JOIN pollresults pr ON pa.POllQuestionID=pr.PollQuestionId
INNER JOIN pollwhatevers pw ON pw.whatevercolumn=pa.PollquestionID
WHERE pa.PollQuestionId = '123';
但是,如果要將其加入到加入PollResults和PollAnswers的結果表中,您可能需要考慮使用臨時表。 請參閱此鏈接以獲取更多信息,我不確定我是否可以解釋它以及:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.