SQL一对多表关联查询查出一对另一表的第一行
|
admin
2012年1月13日 16:4
本文热度 2752
|
select * from table1 a where exists (select name from table2 where table2.name=a.name )
以上语句只取出符合条件table1的所有字段,如果想关联出table2的某一段,怎么写?谢谢
问题补充:Sonicscorpop,谢谢
table1与table2是一对多的关系,我只要取table2中一笔(日期最大的那笔)
感觉楼主的语句不用写成这样诡异的,你可以试试下面的语句符不符合你的要求
select * from table1 a,table 2 b where a.name=b.name;
这样不就行了么??
可以给多一点信息么??具体你想返回什么呢??
是这样么?
table1符合的记录字段 table1所对应的很多table2
的中的一个记录 字段
** ++++++
** ++++++
** ++++++
** ++++++
如果是这样的话,table2应该是存储有关交易的信息的吧,那么应该有一个唯一标识的编号,类型为数值,越新的记录,编号越大,设这个编号为id 那么可以用以下方法,达到你想要的效果
select * from table1,table2 where table2.id in (
select max(id) from table2 group by name) and table1.name
=table2.name;
强烈建议不要使用日期字段作唯一标识,如果没有以上所说的id列,会麻烦许多
该文章在 2012/1/13 16:04:05 编辑过