对3表联合查询得到的值进行分组查询的sql语句

littlebirds 2013-07-03 02:16:58
已知3张表,分别为a,b,c。求当表a和表b的cust_no字段的值,表a和表c都相等时对应的a.stock_no,c.lotno,count(c.lotno)的值,按照stock_no和lotno进行分组查询的语句。

3张表结构如下:



--
-- 表的结构 `a`
--

CREATE TABLE IF NOT EXISTS `a` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL,
`rkno` varchar(25) NOT NULL,
`packageno` varchar(20) NOT NULL,
`type` varchar(20) NOT NULL,
`cust_no` varchar(20) NOT NULL,
`snp` int(4) NOT NULL,
`wh_info` varchar(20) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`ID`),
KEY `packageno` (`packageno`),
KEY `date` (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;

-- --------------------------------------------------------

--
-- 表的结构 `b`
--

CREATE TABLE IF NOT EXISTS `b` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`stock_no` varchar(20) NOT NULL,
`adress` varchar(10) NOT NULL,
`arr_time` datetime NOT NULL,
`c_type` varchar(20) NOT NULL,
`pu_no` varchar(20) NOT NULL,
`cust_no` varchar(20) NOT NULL,
`mount` int(10) NOT NULL,
`snp` int(10) NOT NULL,
`c1_time` datetime NOT NULL,
`c2_time` datetime NOT NULL,
PRIMARY KEY (`ID`)
)
-- --------------------------------------------------------

--
-- 表的结构 `c`
--

CREATE TABLE IF NOT EXISTS `c` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(25) NOT NULL,
`packageno` varchar(20) NOT NULL,
`hi_no` varchar(20) NOT NULL,
`cust_no` varchar(20) NOT NULL,
`lotno` varchar(20) NOT NULL,
`description` varchar(20) NOT NULL,
`type` varchar(20) NOT NULL,
`barcode` varchar(50) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`ID`),
KEY `packageno` (`packageno`),
KEY `lotno` (`lotno`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=167027 ;

...全文
291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-07-03
  • 打赏
  • 举报
回复
引用 5 楼 lazygc520 的回复:
[quote=引用 3 楼 ACMAIN_CHM 的回复:] 没看懂楼主的需求是什么。 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
建表语句我已经给出了啊。数据不好给出,结果集太大了。能不能给出a表和c表的cust_no相同时按照lotno分组得到的结果? select a.cust_no as cust_no,c.lotno as lotno,count(b.lotno) as lot_countfrom `a`,`c` where a.packageno = b.packageno group by lotno order by lotno asc 结果: cust_no lotno lotno_count 237033AW0A 3207 360 我要求的是以上情况再加上b表和a表的cust_no的结果相同时,3张表按stock_no和lotno进行分组所得到的结果。 [/quote]建议看一下别人在贴子中是如何提供数据的,并不是把所有记录都导出,楼主自己可以花点时间亲自编造一些测试数据。
littlebirds 2013-07-03
  • 打赏
  • 举报
回复
引用 4 楼 wwwwb 的回复:
记录及达到的目的是什么?怎么测试
想求得当a.cust_no和b.cust_no及c.cust_no相等时,按stock_no,lotno分组,求得结果为b.stock_no,c.lotno,count(c.lotno)的值。
littlebirds 2013-07-03
  • 打赏
  • 举报
回复
sql语句写错了。 更正为: select a.cust_no as cust_no,c.lotno as lotno,count(b.lotno) as lot_countfrom `a`,`c` where a.packageno = c.packageno group by lotno order by lotno asc
littlebirds 2013-07-03
  • 打赏
  • 举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
没看懂楼主的需求是什么。 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
建表语句我已经给出了啊。数据不好给出,结果集太大了。能不能给出a表和c表的cust_no相同时按照lotno分组得到的结果? select a.cust_no as cust_no,c.lotno as lotno,count(b.lotno) as lot_countfrom `a`,`c` where a.packageno = b.packageno group by lotno order by lotno asc 结果: cust_no lotno lotno_count 237033AW0A 3207 360 我要求的是以上情况再加上b表和a表的cust_no的结果相同时,3张表按stock_no和lotno进行分组所得到的结果。
wwwwb 2013-07-03
  • 打赏
  • 举报
回复
记录及达到的目的是什么?怎么测试
ACMAIN_CHM 2013-07-03
  • 打赏
  • 举报
回复
没看懂楼主的需求是什么。 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
littlebirds 2013-07-03
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
表引擎竟然不统一
建表时间不同。请问这样的查询是否好写?是否要用到join?
rucypli 2013-07-03
  • 打赏
  • 举报
回复
表引擎竟然不统一

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧