select msg.id msgId,msg.test_result_id resultId,test.test_name testName,msg.message_times times,msg.receiver_id postilorId,msg.sender_id userId,postilor.real_name postilorName,msg.createdate createDate,msg.status status from (((select * from newclass.te_message union (select m1_.id,m1_.body,m1_.title,m1_.test_result_id,m1_.msg_type_id,m1_.sender_id,m1_.receiver_id,0,m1_.status,m1_.createby,m1_.createdate,m1_.lastupdateby,m1_.lastupdatedate from newclass.te_message m1_ where m1_.test_result_id not in (select distinct m0_.test_result_id from newclass.te_message m0_ where m0_.receiver_id=1173587))) msg inner join newclass.te_testresult result on msg.test_result_id=result.id) inner join newclass.te_test test on result.testid=test.id ) inner join newclass.te_test_postilor postilor on msg.receiver_id=postilor.id;查不出记录,但是取中间的一节却没有问题,
select * from newclass.te_message where receiver_id=1173587 union (select m1_.id,m1_.body,m1_.title,m1_.test_result_id,m1_.msg_type_id,m1_.sender_id,m1_.receiver_id,0,m1_.status,m1_.createby,m1_.createdate,m1_.lastupdateby,m1_.lastupdatedate from newclass.te_message m1_ where m1_.test_result_id not in (select distinct m0_.test_result_id from newclass.te_message m0_ where m0_.receiver_id=1173587));
数据方面没有错误。
select * from newclass.te_message where receiver_id=1173587 union (select m1_.id,m1_.body,m1_.title,m1_.test_result_id,m1_.msg_type_id,m1_.sender_id,m1_.receiver_id,0,m1_.status,m1_.createby,m1_.createdate,m1_.lastupdateby,m1_.lastupdatedate from newclass.te_message m1_ where m1_.test_result_id not in (select distinct m0_.test_result_id from newclass.te_message m0_ where m0_.receiver_id=1173587));
数据方面没有错误。
msg.test_result_id resultId,
test.test_name testName,
msg.message_times times,
msg.receiver_id postilorId,
msg.sender_id userId,
postilor.real_name postilorName,
msg.createdate createDate,
msg.status status from (
select * from newclass.te_message union
(select
m1_.id,
m1_.body,
m1_.title,
m1_.test_result_id,
m1_.msg_type_id,
m1_.sender_id,
m1_.receiver_id,
0,
m1_.status,
m1_.createby,
m1_.createdate,
m1_.lastupdateby,
m1_.lastupdatedate
from newclass.te_message m1_
where m1_.test_result_id not in (
select distinct m0_.test_result_id
from newclass.te_message m0_
where m0_.receiver_id=1173587)
)
) msg
inner join newclass.te_testresult result on (msg.test_result_id=result.id)
inner join newclass.te_test test on (result.testid=test.id)
inner join newclass.te_test_postilor postilor on (msg.receiver_id=postilor.id);自己看看吧我觉得很可能是这几个 inner join 导致结果集为空你可以先去掉所有的inner join,查询看看
如果有结果,就加上一个join
依次尝试三个join
应该就能找到问题所在了祝你好运!