求条SQL语句 没看懂楼主的需求,到底是要UPDATE表还是查询。 如果是UPDATE,则建议在程序中去实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是要查询A表的记录; 但A表的记录要满足条件; 1:因为A跟B是相关联的又是一对多的; B跟C也是相关联的也是一对多的;B表中有的记录C表中都要出现; 如果我只到B时可以这么写SELECT * FROM A as a,B as b where a.AID=B.AID and (select count(*) from B where AID=a.AID)>0但是我现在要到达C表: 如果我要到达C时 首先A对B是一对多的关系;所以SQL语句要有一个FOR循环;判断出每条记录在C都满足有记录时;才显示出A的这条记录 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。 表A:CREATE TABLE [dbo].[A]( [AID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED ( [AID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]表B:CREATE TABLE [dbo].[B]( [BID] [int] IDENTITY(1,1) NOT NULL, [AID] [int] NOT NULL, [Address] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED ( [BID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]表C:CREATE TABLE [dbo].[C]( [CID] [int] IDENTITY(1,1) NOT NULL, [BID] [int] NOT NULL, [SpotName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED ( [CID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]INSERT INTO [A] ([Name]) VALUES ('第一条');INSERT INTO [A] ([Name]) VALUES ('第二条');INSERT INTO [A] ([Name]) VALUES ('第三条');INSERT INTO [B]([AID],[Address])VALUES(1'222');INSERT INTO [B]([AID],[Address])VALUES(1'2S2SDF2');INSERT INTO [B]([AID],[Address])VALUES(2'RR2SS22');INSERT INTO [B]([AID],[Address])VALUES(3'AAA222');INSERT INTO [B]([AID],[Address])VALUES(3'GGG222');INSERT INTO [B]([AID],[Address])VALUES(3'YYY222');INSERT INTO [C]([BID],[SpotName])VALUES(1,'SFSDF');INSERT INTO [C]([BID],[SpotName])VALUES(4,'EFES');INSERT INTO [C]([BID],[SpotName])VALUES(4,'FSDFSDF');INSERT INTO [C]([BID],[SpotName])VALUES(5,'FSDFSDF');INSERT INTO [C]([BID],[SpotName])VALUES(6,'SDFFESDF');得到的A表的记录只有AID为3符合要求;因为它在B中有三条记录;而且这三条记录分别在C表中也有记录;AID为2虽然在B中有记录 ,但这条记录在C中没有,所以不符合要求;AID为1虽然在B中有两条记录,但只有其中一条记录在C表中有记录,所以也不答合要求;本来是要写MYSQL 家里的MYSQL打不开了 所以就直接用MSSQL 语句应该都一样吧 select a.*from a,b,cwhere a.aid=b.aid and b.bid=c.bid 使用C语言在mysql中插入数据的问题 MySQL查询最大值问题 MySQL日期型字段直接用VARCHAR(10)表示好不好?用来日期比较效率会不会高一点? 求教一条更新语句 mysql表读取mysql表的问题 这条sql语句怎么改写 求助:MYSQL的replication双机同步备份的问题!在线等.高手进! 跪求各位大侠,绝对给分 在linux 用 C api 连接Mysql程序编译后运行出错!! jdbc 的jar包在官网的哪个 地方,找了许久都没有找到 mysql启动失败 mysql一个表,大概300条记录,每秒全部更新一次,使用什么引擎好?
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
[AID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED
(
[AID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]表B:CREATE TABLE [dbo].[B](
[BID] [int] IDENTITY(1,1) NOT NULL,
[AID] [int] NOT NULL,
[Address] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED
(
[BID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]表C:CREATE TABLE [dbo].[C](
[CID] [int] IDENTITY(1,1) NOT NULL,
[BID] [int] NOT NULL,
[SpotName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED
(
[CID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
INSERT INTO [A]
([Name])
VALUES
('第一条');
INSERT INTO [A]
([Name])
VALUES
('第二条');
INSERT INTO [A]
([Name])
VALUES
('第三条');INSERT INTO [B]([AID],[Address])VALUES(1'222');
INSERT INTO [B]([AID],[Address])VALUES(1'2S2SDF2');
INSERT INTO [B]([AID],[Address])VALUES(2'RR2SS22');
INSERT INTO [B]([AID],[Address])VALUES(3'AAA222');
INSERT INTO [B]([AID],[Address])VALUES(3'GGG222');
INSERT INTO [B]([AID],[Address])VALUES(3'YYY222');INSERT INTO [C]([BID],[SpotName])VALUES(1,'SFSDF');
INSERT INTO [C]([BID],[SpotName])VALUES(4,'EFES');
INSERT INTO [C]([BID],[SpotName])VALUES(4,'FSDFSDF');
INSERT INTO [C]([BID],[SpotName])VALUES(5,'FSDFSDF');
INSERT INTO [C]([BID],[SpotName])VALUES(6,'SDFFESDF');得到的A表的记录只有AID为3符合要求;
因为它在B中有三条记录;而且这三条记录分别在C表中也有记录;
AID为2虽然在B中有记录 ,但这条记录在C中没有,所以不符合要求;
AID为1虽然在B中有两条记录,但只有其中一条记录在C表中有记录,所以也不答合要求;本来是要写MYSQL 家里的MYSQL打不开了 所以就直接用MSSQL 语句应该都一样吧
from a,b,c
where a.aid=b.aid and b.bid=c.bid