[英]Use query result as table name
我想只使用一個查詢刪除父表和子表中的記錄。 我在TABLENAME
字段名稱的父表PARENT_TABLE
中有子表名CHILD1_TABLE
。 父表包含更多子表。我想從子表和父表中只刪除一個記錄。 公共字段是子表和父表中的ID
。 我寫這樣的查詢,
DELETE PARENT.*,CHILD.*
FROM PARENT_TABLE PARENT
INNER JOIN (SELECT TABLENAME FROM PARENT_TABLE WHERE ID='CHILD1-001') CHILD
ON PARENT.ID=CHILD.ID
WHERE PARENT.ID='CHILD1-001'
但它不起作用。 有誰能夠幫助我?
那這個呢:
DELETE PARENT.*,CHILD.*
FROM PARENT_TABLE PARENT
INNER JOIN (SELECT * FROM (SELECT TABLENAME FROM PARENT_TABLE WHERE ID='CHILD1-001') AS CHILD)
ON PARENT.ID=CHILD.ID
WHERE PARENT.ID='CHILD1-001'
為什么不使用ON DELETE CASCADE
?
DELETE PARENT.*,CHILD.*
FROM PARENT_TABLE PARENT
INNER JOIN (SELECT * FROM (SELECT TABLENAME FROM PARENT_TABLE WHERE ID='CHILD1-001') AS a) as child
ON PARENT.ID=CHILD.ID
WHERE PARENT.ID='CHILD1-001'
我不確定這個查詢但是試一試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.