sql语句,关联查询!

来源:百度知道 编辑:UC知道 时间:2024/05/08 10:43:16
有俩个关联表!question和answer
question 字段 id qu_content
answer 字段 id an_content question_id an_ok
求除an_ok = 2 question的所有数据
question_id 只要有一个等于 2 question 就不显是这条数据
一楼的! - -!
二楼的! - -!
三楼的! - -!
没一个对的!自个琢磨

select q.*, r.relateName,a.icount from kn_question q
left outer join kn_relate r on q.relateid=r.id
left outer join (select count(id) as icount, qu_id from kn_answer group by qu_id) a on a.qu_id = q.id
left outer join (select sum(an_ok) as okcount, qu_id from kn_answer group by qu_id) ok on ok.qu_id = q.id
where ok.okcount < 2 or a.icount is null

问题补充:一楼的! - -!
二楼的! - -!
三楼的! - -!
没一个对的!自个琢磨

继续琢磨、琢磨、琢磨......
select q.* from
question q inner join
answer a on q.id=a.id
where a.an_ok<>2

select q.* from
question q
where q.id not in (
select disticnt id from
answer where question_id ='2')

select a.id, a.qu_content from question a,anser b
where a.id=b.question_id
and b.an_ok<>2
group by a.id, a.qu_content

select q.id,q.qu_content
from question q
join answer a
on q.id=a.question_id
and an_ok<>2
and q.question_id <> 2;

我这里没有查询分析器,,
楼主拿到正确答案 分享下..我是新手~

这个应该用外连接吧~~
SELECT Q.ID,Q.qu_content
FROM question Q, answer A
WHERE Q.ID = A.question_id(+)
AND an_ok != 2

SELECT Q.*
FROM question Q,answer A
WHERE Q.ID = A.question_id(+)
AND INSTR(A.question_id,'2') = 0

PS:question_id 只要有一个等于