SQL 一对多表关联查询
select*fromtable1awhereexists(selectnamefromtable2wheretable2.name=a.name)以上语句只取出符合条件...
select * from table1 a where exists (select name from table2 where table2.name=a.name )
以上语句只取出符合条件table1的所有字段,如果想关联出table2的某一段,怎么写?谢谢
Sonicscorpop,谢谢
table1与table2是一对多的关系,我只要取table2中一笔(日期最大的那笔) 展开
以上语句只取出符合条件table1的所有字段,如果想关联出table2的某一段,怎么写?谢谢
Sonicscorpop,谢谢
table1与table2是一对多的关系,我只要取table2中一笔(日期最大的那笔) 展开
3个回答
展开全部
补充:
....这个,感觉楼主的语句不用写成这样诡异的,你可以试试下面的语句符不符合你的要求
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列,会麻烦许多
....这个,感觉楼主的语句不用写成这样诡异的,你可以试试下面的语句符不符合你的要求
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列,会麻烦许多
展开全部
select * from table1 a,table 2 b where a.name=b.name;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table1 a where exists (select name,max(datefield) from table2 where table2.name=a.name )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询