各位大哥,前辈,请教一个貌似很简单的sql语句,但菜鸟半天也搞不出!

thomsonyin 2008-02-01 10:59:23
有二个表a和b
a表字段
id name
1 aaa
2 bbb
3 ccc

b表中含有id和name1
1 xxxx
1 yyyy
2 zzzz
2 uuuu
2 vvvv
3 wwww
3 xxxx
我想得到 1 aaa xxxx
2 bbb zzzz
3 ccc wwww
...全文
178 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomsonyin 2008-03-31
  • 打赏
  • 举报
回复
结果是正确的
hanb99 2008-02-29
  • 打赏
  • 举报
回复
感觉不行,b表中的ID不唯一
wdk23411 2008-02-27
  • 打赏
  • 举报
回复
没用的,b表中的id和name1不具备唯一性,缺少排序的条件,那个select *出来的数据顺序是没有意义的,你可以用b表的no排序,直接关联到id会有问题
reality 2008-02-26
  • 打赏
  • 举报
回复
好像得不到,
1 xxxx
1 yyyy
需要唯一的1.
XFliangwh 2008-02-02
  • 打赏
  • 举报
回复
看不出你要的name1究竟是什么条件。你如果是要存储进去数据库的第一个记录的话,可以试试group by

select a.Id,a.name,b.name1 from a inner join b on a.Id=b.Id group by b.Id;




懒得去死 2008-02-02
  • 打赏
  • 举报
回复
看看这里:
http://blog.chinaunix.net/u/29134/showart_465578.html
XFliangwh 2008-02-02
  • 打赏
  • 举报
回复
先where,再group by,最后order
thomsonyin 2008-02-02
  • 打赏
  • 举报
回复
谢谢楼上,但好象出错!
如果有where语句及order by 等应该怎么放
select a.Id,a.name,b.name1 from a inner join b on a.Id=b.Id group by b.Id where a.check='1' order by a.postdate DESC 0,5
XFliangwh 2008-02-02
  • 打赏
  • 举报
回复
直接group by 就只显示记录的第一个咯。
thomsonyin 2008-02-02
  • 打赏
  • 举报
回复
对,就是取b表中相同id的第一个数据
jinjazz 2008-02-01
  • 打赏
  • 举报
回复
没用过mysql,估计这里用mysql的也不多
thomsonyin 2008-02-01
  • 打赏
  • 举报
回复
mysql
thomsonyin 2008-02-01
  • 打赏
  • 举报
回复
我用这个不行呀:
select a.name b.names from a left join b using(id)
jinjazz 2008-02-01
  • 打赏
  • 举报
回复
什么数据库
thomsonyin 2008-02-01
  • 打赏
  • 举报
回复
b表中是有一个序号no,但我想根据id关联
jinjazz 2008-02-01
  • 打赏
  • 举报
回复
b表需要一个序号,数据库的存储位置是没有意义的。也就是说你凭什么是aaa xxx而不是aaa yyy

56,678

社区成员

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

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