我有一台带有3个fiedls的桌面电脑:join_c_id
,join_pid
和类型。
join_c_id
是名为clients
的表格的FK。
join_p_id
是名为parkings
的表格的FK。
类型可以是1,2,3。
我必须
当我从停车场删除记录时,我必须:
1)删除停车与type = 1的客户之间的关联
2)删除所有其他关联到clients
(类型!= 1)但是只有这些客户端有
与其他停车场没有其他联系。
假设我将PC作为:
`join_c_id` | `join_p_id` | type
---------------------------------
1 1 1
2 1 2
3 1 3
3 1 1
当我从parkings
删除ID为1的记录时,我想删除ID为1,2而不是3的clients
(因为3有另一个关联)。有人可以帮我提一些暗示吗?
答案 0 :(得分:0)
DELETE FROM clients WHERE id IN
(SELECT join_c_id FROM PC WHERE
PC.join_pratiche_id=%d AND
join_c_id NOT IN
(SELECT join_c_id FROM PC WHERE
join_p_id != %d)
)
我正在删除%d == <the id of parking>
(示例中为= 1)。
答案 1 :(得分:0)
尝试排除不仅仅是1&amp;的类型的cid 2,欢呼
DELETE FROM tbl_sample
WHERE PID = 1
AND [TYPE] IN(1,2)
AND [CID] NOT IN ((select CID FROM TBL_SAMPLE WHERE [TYPE] NOT IN (1,2)))