sql多表连接 查询 与删除
如题1:有三个表分别为客户、订单、订单时间表,订单表UID与客户表UID关联,订单时间表DID与订单DID字段关联,要写一条是SQL语句查询出超过三次订单的客户姓名,订单...
如题 1:有三个表分别为 客户、订单、订单时间表,订单表UID与客户 表UID关联,订单时间表DID与订单DID字段关联,要写一条是SQL语句 查询出 超过三次订单的客户姓名,订单号与时间
题2:
所有表中删除 包含 张三 的字段及关联字段 展开
题2:
所有表中删除 包含 张三 的字段及关联字段 展开
1个回答
2012-10-26
展开全部
1:
SELECT
客户姓名
订单号
时间
FROM
订单表
JOIN 客户表
ON ( 订单表.UID = 客户表.UID)
JOIN
订单时间表
ON ( 订单表.DID = 订单时间表.DID)
WHERE
( SELECT COUNT(*) FROM 订单表 d WHERE d.UID = 客户表.UID ) > 3
2:
-- 先删除 订单时间表
DELETE
订单时间表
WHERE
DID IN (
SELECT DID FROM
订单表
JOIN 客户表
ON ( 订单表.UID = 客户表.UID)
WHERE
客户姓名 = '张三'
);
-- 后删除 订单表.
DELETE
订单表
WHERE
UID IN ( SELECT UID FROM 客户表 WHERE 客户姓名 = '张三');
-- 最后删除 客户表
DELETE
客户表
WHERE
客户姓名 = '张三';
SELECT
客户姓名
订单号
时间
FROM
订单表
JOIN 客户表
ON ( 订单表.UID = 客户表.UID)
JOIN
订单时间表
ON ( 订单表.DID = 订单时间表.DID)
WHERE
( SELECT COUNT(*) FROM 订单表 d WHERE d.UID = 客户表.UID ) > 3
2:
-- 先删除 订单时间表
DELETE
订单时间表
WHERE
DID IN (
SELECT DID FROM
订单表
JOIN 客户表
ON ( 订单表.UID = 客户表.UID)
WHERE
客户姓名 = '张三'
);
-- 后删除 订单表.
DELETE
订单表
WHERE
UID IN ( SELECT UID FROM 客户表 WHERE 客户姓名 = '张三');
-- 最后删除 客户表
DELETE
客户表
WHERE
客户姓名 = '张三';
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询