日期:2014-05-18  浏览次数:20549 次

可以把从一个表里查寻得到多个结果,再当作条件,查另一张表呢
表1 表2
ID name ID remark
1 red 1 a  
2 yellow 2 b
3 green 3 c
4 red 4 d
5 red 5 e
 


我从表一里面查name='red'得到了很多的ID ,可不可以用这些ID当作条件再次得到表二里的remark了
 求详解:




------解决方案--------------------
SQL code
CREATE TABLE tb1(id int,name varchar(200))
INSERT tb1 SELECT 1,'red'
UNION ALL SELECT 2,'yellow'
UNION ALL SELECT 3,'green'
UNION ALL SELECT 4,'red'
UNION ALL SELECT 5,'red'

CREATE TABLE tb2(id int,remark varchar(200))
INSERT tb2 SELECT 1,'a'
UNION ALL SELECT 2,'b'
UNION ALL SELECT 3,'c'
UNION ALL SELECT 4,'d'
UNION ALL SELECT 5,'e'

SELECT tb2.* FROM tb1 INNER JOIN tb2 ON tb1.id=tb2.id WHERE tb1.name='red'

------解决方案--------------------
子查询
select * from table2 where id in
(
select id from table1 where...............
)
------解决方案--------------------
探讨
引用:
SQL code

select remark from tableA where ID=(select ID from tableB where name='red')

这是不行的啊 ,查询时出错啊