当前位置: 代码迷 >> Sql Server >> 初学者,关于联合主键怎么批量查询
  详细解决方案

初学者,关于联合主键怎么批量查询

热度:34   发布时间:2016-04-24 08:54:42.0
菜鸟求助,关于联合主键如何批量查询?
本帖最后由 mamushichen 于 2015-08-23 15:56:16 编辑
我有一个表,表有两个主键组合而成。比如一个病人的病案号为123456,这个病人会一直使用此病案号,只是住医院次数往后累加。这时候表主键就会是123456,1       123456,2              123456,3                123456,4等等。我现在想批量查询出指定住院号下的指定住院次,一个主键好说用in就行,但联合主键该如何查询?求解惑.....................
补充:条件的来源并不是一个表,而是从文件导入进来的一组数据。
------解决思路----------------------
引用:
Quote: 引用:

指定住院号几次?比如123456几次?


病案号相同,住院次不同,病案号+住院次为联合主键。一个病人的住院号是统一的,但住院次会有多次。
加入从一个Excel中读取出一批住院号+住院次的信息。因为是联合主键,如何查询?是不是只能通过代码
一个一个查询在合成一张表还是一条SQL语句就能搞定?


不好意思,实在不能理解。住院号 是不是 就是 病案号啊?
还有举几个数值,然后想到得到什么结果,列一下!这样便于理解!
------解决思路----------------------
join可以办到。
你传入 
100,2
,100,1
,234,4

select a.* from tb a join @t b on a.id1=b.id and a.id2=b.id2

------解决思路----------------------
是这个意思吗? 病人信息表里有住院号和住院次数,病人费用表里有住院号和住院次数, 现在想把两个表关联起来查询
可以使用
SELECT * FROM 病人信息表 A LEFT JOIN 病人费用表 B ON A.住院号=B.住院号 AND A.住院次数=B.住院次数
------解决思路----------------------
你把文件数据导入一个临时表#T(病案号,住院次数),查询
SELECT a.*
  FROM 住院表 a
  JOIN #T
    ON #T.病案号 = a.病案号
   AND #t.住院次数 = a.住院次数
  相关解决方案