数据库多表查出现问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 02:22:30
select B.c_id,A.c_name,A.c_pic,A.c_Type from A,B where A.c_id in (select c_produtctid from B where c_complanyid=3 )
A表:
c_id ,c_name,c_pic,c_Type
B 表;
c_id,c_produtctid,c_complanyid
先通过B表c_complanyid 查询 出 c_produtctid
在通过B表c_produtctid 分别去找A表对应的c_id ;
我是想把A的c_name,c_pic,c_Type 字段打印出来,B表的c_id ;字段打印出来;打印出效果,他是循环打印一个多过A表,那位帮个忙看看哪里错了

加上条件 A.C_id=B.c_id试试

select B.c_id,A.c_name,A.c_pic,A.c_Type from A,B where A.c_id in (select c_id from B where c_complanyid=3 )

AB表没有建立关联,加上条件 A.C_id=B.c_id试试

where A.c_id in (select c_produtctid from B where c_complanyid=3 )
这句中你想先通过B表c_complanyid 查询 出 c_produtctid ,
在通过B表c_produtctid 分别去找A表对应的c_id ;
可是B表中complanyid可以直接对应到B表的c_id ,试试这句:

select B.c_id,A.c_name,A.c_pic,A.c_Type from A,B where A.c_id in (select c_id from B where c_complanyid=3 ) and A.C_id=B.c_id

你想一想,A中的c_id怎么能和B的c_produtctid有联系呢,所以你需要的是让
A.c_id 与B.c_id有联系所以 select B.c_id,A.c_name,A.c_pic,A.c_Type from A,B where A.c_id in (select c_id from B where c_complanyid=3 )