SQL Join在哪里Q.

时间:2013-06-05 16:47:06

标签: sql oracle10g

我的select语句没有得到理想的结果。连接似乎正在起作用,但我的日期范围内的WHERE被完全忽略。 where语句“WHERE MOPACTIVITY.mopstart BETWEEN sysdate和(sysdate + 14)”将被完全忽略。有什么想法吗? 非常感谢您的专业知识。

尊敬, 乔纳森晨星

SELECT
MOPACTIVITY.MOPID,
MOPACTIVITY.MOPSERVICEIMPACTED "Type",  
MOPACTIVITY.MOPSTATEACTIVITY "State", 
MOPACTIVITY.MOPSTATUS "Status",
MOPACTIVITY.MOPSTART "SOM", 
MOPACTIVITY.MOPEND "EOM",  
MOPACTIVITY.MOPINTRUSIVE "INTRUSIVE",
MOPACTIVITY.MOPDESCRIPTION,
MOPNOTES.MOPNOTEUSER "MN_USER",
MOPNOTES.MOPNOTE "MN_NOTE" 
FROM mopuser.MOPACTIVITY INNER JOIN mopuser.mopnotes ON MOPACTIVITY.MOPID = MOPNOTES.MOPID;
SELECT MOPACTIVITY.*, MOPNOTES.* from mopactivity.MOPNOTES where MOPACTIVITY.MOPID = MOPNOTES.MOPID 
WHERE MOPACTIVITY.mopstart BETWEEN sysdate and (sysdate+14)
AND MOPACTIVITY.MOPINTRUSIVE = 'true'
AND MOPACTIVITY.mopstatus != 'Complete'
AND MOPACTIVITY.mopstatus != 'Cancelled'
AND (mopactivity.mopid not in (select MOPACTIVITY.mopid from mopuser.mopnotes where 
MOPNOTES.MOPNOTEUSER LIKE '%Fortenberry%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Dixon%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Fregoso%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Reices%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Walley%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Lions%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Ramesh%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Saravanan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Boominathan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Srinivasan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Sathya%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Sathish%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Malliga%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Yuvaraj%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Prabhu%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Joseph, Gilbert%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Pradeepa%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Veerababu%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Ramanan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Rajesh%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Rajan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Raja%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Vigneshwari%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Govardhan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Gaytan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Sheridan%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Goutham'
OR MOPNOTES.MOPNOTEUSER LIKE '%Thennarasu%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Santosh%'
OR MOPNOTES.MOPNOTEUSER LIKE '%Brown, W%'))

1 个答案:

答案 0 :(得分:0)

你有两个独立的 SELECT语句:分隔第一个SELECT的分号:

SELECT
...
FROM mopuser.MOPACTIVITY
  INNER JOIN mopuser.mopnotes
    ON MOPACTIVITY.MOPID = MOPNOTES.MOPID;
                  -- statement delimiter ^
SELECT MOPACTIVITY.*, MOPNOTES.* from ...

因此,此多语句查询将返回两个结果集。

也许,您只能看到第一个查询的输出。但是,第一个查询实际上是根本没有具有WHERE子句的查询:您所谈论的WHERE条件是第二个SELECT条件的一部分{ {1}}陈述。

所以,您可能需要以某种方式组合这两个查询。但是,如果您需要帮助,那将是一个完全不同的问题(需要单独提出)。