从a中取出数据,一般就是几个(10个以下),然后根据返回的id去table b中找name
菜鸟求助 table a中查到的的几个int型的数据怎么存储 怎么传参数
16 个解决方案
#1
select name from b where exists(select 1 from a where a.id = b.id)
#2
select name from b
where b.id In(select id from a)
where b.id In(select id from a)
#3
select b.name from b join a on b.id = a.id
#4
select b.name from b ,a where b.id = a.id
#5
嗯 谢谢各位 其实从a中取出的数据有好几个字段 而且这些列都是需要保存的 我只用拿出id 去匹配另一个表
#6
我再说的详细点吧 就是在第一个表中查出数据 可能是几个值 也可能没有
如果有的话 在另一个表中找出这个id的其他相关信息 最后把从两个表中找到的信息合并成一条记录
如果有的话 在另一个表中找出这个id的其他相关信息 最后把从两个表中找到的信息合并成一条记录
#7
就是嵌套查询吧.
select name from b where id=(select from a where 条件....),大概是这样的
相信你肯定有SQL数据库方面的教材,随便找一本SQL Server2000或2005方面的书,看一下例子就明白了,不能太懒惰
select name from b where id=(select from a where 条件....),大概是这样的
相信你肯定有SQL数据库方面的教材,随便找一本SQL Server2000或2005方面的书,看一下例子就明白了,不能太懒惰
#8
给你个例子:
SQL> SELECT *
2 FROM EMP;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980-12-17 800.00 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
7566 JONES MANAGER 7839 1981-4-2 2975.00 20
7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
7839 KING PRESIDENT 1981-11-17 5000.00 10
7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
7900 JAMES CLERK 7698 1981-12-3 950.00 30
7902 FORD ANALYST 7566 1981-12-3 3000.00 20
7934 MILLER CLERK 7782 1982-1-23 1300.00 10
14 rows selected
SQL> SELECT *
2 FROM DEPT;
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> SELECT *
2 FROM DEPT B
3 WHERE EXISTS(SELECT 1
4 FROM EMP A
5 WHERE B.DEPTNO = A.DEPTNO
6 );
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
SQL>
#9
:)
#10
可是我还要保存第一个查询的结果呢
create table result
as
select * from a ;
alter table a add column (****)
把跟第一个表中对应id的值找出来 作为一列 也插入这个表中
具体不知道杂写
create table result
as
select * from a ;
alter table a add column (****)
把跟第一个表中对应id的值找出来 作为一列 也插入这个表中
具体不知道杂写
#11
select a.字段1,a.字段2....,a.字段n,
b.字段1,b.字段2....,b.字段n
from a left join b
on a.id = b.id
b.字段1,b.字段2....,b.字段n
from a left join b
on a.id = b.id
#12
select name from b where exists(select 1 from a where a.id = b.id)
正解
正解
#13
恩 谢谢大家 不过我不要一条一条执行 我想一起执行了最后看那个结果表
想写成个存储过程什么的 把最后运行的结果 插在一张表里 直接查看
想写成个存储过程什么的 把最后运行的结果 插在一张表里 直接查看
#14
select a.*,b.name from tab1 a,tab2 b
where a.id=b.id
#15
这个不行吗
#16
select b.name from b ,a where b.id = a.id
#1
select name from b where exists(select 1 from a where a.id = b.id)
#2
select name from b
where b.id In(select id from a)
where b.id In(select id from a)
#3
select b.name from b join a on b.id = a.id
#4
select b.name from b ,a where b.id = a.id
#5
嗯 谢谢各位 其实从a中取出的数据有好几个字段 而且这些列都是需要保存的 我只用拿出id 去匹配另一个表
#6
我再说的详细点吧 就是在第一个表中查出数据 可能是几个值 也可能没有
如果有的话 在另一个表中找出这个id的其他相关信息 最后把从两个表中找到的信息合并成一条记录
如果有的话 在另一个表中找出这个id的其他相关信息 最后把从两个表中找到的信息合并成一条记录
#7
就是嵌套查询吧.
select name from b where id=(select from a where 条件....),大概是这样的
相信你肯定有SQL数据库方面的教材,随便找一本SQL Server2000或2005方面的书,看一下例子就明白了,不能太懒惰
select name from b where id=(select from a where 条件....),大概是这样的
相信你肯定有SQL数据库方面的教材,随便找一本SQL Server2000或2005方面的书,看一下例子就明白了,不能太懒惰
#8
给你个例子:
SQL> SELECT *
2 FROM EMP;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980-12-17 800.00 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
7566 JONES MANAGER 7839 1981-4-2 2975.00 20
7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
7839 KING PRESIDENT 1981-11-17 5000.00 10
7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
7900 JAMES CLERK 7698 1981-12-3 950.00 30
7902 FORD ANALYST 7566 1981-12-3 3000.00 20
7934 MILLER CLERK 7782 1982-1-23 1300.00 10
14 rows selected
SQL> SELECT *
2 FROM DEPT;
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> SELECT *
2 FROM DEPT B
3 WHERE EXISTS(SELECT 1
4 FROM EMP A
5 WHERE B.DEPTNO = A.DEPTNO
6 );
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
SQL>
#9
:)
#10
可是我还要保存第一个查询的结果呢
create table result
as
select * from a ;
alter table a add column (****)
把跟第一个表中对应id的值找出来 作为一列 也插入这个表中
具体不知道杂写
create table result
as
select * from a ;
alter table a add column (****)
把跟第一个表中对应id的值找出来 作为一列 也插入这个表中
具体不知道杂写
#11
select a.字段1,a.字段2....,a.字段n,
b.字段1,b.字段2....,b.字段n
from a left join b
on a.id = b.id
b.字段1,b.字段2....,b.字段n
from a left join b
on a.id = b.id
#12
select name from b where exists(select 1 from a where a.id = b.id)
正解
正解
#13
恩 谢谢大家 不过我不要一条一条执行 我想一起执行了最后看那个结果表
想写成个存储过程什么的 把最后运行的结果 插在一张表里 直接查看
想写成个存储过程什么的 把最后运行的结果 插在一张表里 直接查看
#14
select a.*,b.name from tab1 a,tab2 b
where a.id=b.id
#15
这个不行吗
#16
select b.name from b ,a where b.id = a.id