我在使用mysql進行內連接時遇到了一些問題。INNER JOIN - Mysql和PHP
我有以下代碼:
DELETE T1,T2 FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.id = T2.pageid WHERE T1.ID = 2
這裏的問題是,如果有什麼在表2中刪除。
例如,如果table1和table2具有ID 2,則它們都會刪除。如果僅在table1中存在ID 2,則它不會刪除表1中的記錄。
我已經嘗試過使用外鍵,但它不工作,要麼:
CREATE TABLE banners (
id int(11) NOT NULL AUTO_INCREMENT,
username TEXT NOT NULL,
pageid int(11) NOT NULL,
sitename TEXT NOT NULL,
imgurl TEXT NOT NULL,
refurl TEXT NOT NULL,
clicks int(11) NOT NULL,
PRIMARY KEY (id),
KEY pageid (pageid),
CONSTRAINT edits_ibfk_1
FOREIGN KEY (pageid)
REFERENCES pages (id)
ON DELETE CASCADE
)
如果我使用SQL:
DELETE FROM banners WHERE id= ?
它只是從表1和表2留下記錄有:(
刪除我寧願用SQL查詢來做這件事。在這種情況下有人可以幫我嗎? Thanks!
使用左連接而不是內連接(t1似乎是父表),或者如果使用外鍵,則從父表中刪除,而不是從子級觸發級聯刪除。橫幅表格是您的子表格,頁面是父級表格。 – Shadow
謝謝。有效! – Tiago