0

以下查询将选举人的 ID 与来自投票意图的相应选举人匹配,以查找某些条件。

    "   FROM electors,voting_intention 
WHERE electors.ID = voting_intention.elector 
AND electors.telephone > 0 
AND electors.postal_vote != 1 
AND (mosaic IN ('E1','E2','E3') 
OR (voting_intention.pledge IN ('C','P') 
AND  voting_intention.election != '2012-07-05'))  "

问题在于该行AND (mosaic IN ('E1','E2','E3'),因为我们需要获取此信息,即使选举人.ID 和voting_intention.elector 之间不匹配,因为此信息在选举人表中。

这样做的方法是将这条线放在 WHERE 方程的首位。

4

3 回答 3

0

您还可以做的是左外连接来选择所有记录,而不仅仅是完全连接的记录

WHERE electors.ID(+) = voting_intention.elector 

类似的东西......(未经测试)

于 2012-06-28T13:16:24.617 回答
0

这应该做!

FROM electors e
FULL OUTER JOIN votin_intention i
   ON e.ID=i.elector
WHERE electors.telephone > 0  
AND electors.postal_vote != 1  
AND (mosaic IN ('E1','E2','E3')  
OR (voting_intention.pledge IN ('C','P')  
AND  voting_intention.election != '2012-07-05'))  " 
于 2012-06-28T12:57:25.287 回答
0

会这样做吗:::

FROM electors,voting_intention WHERE electors.telephone > 0 AND electors.postal_vote != 1 AND (electors.mosaic IN ('E1','E2','E3') OR (electors.ID = voting_intention.elector AND voting_intention.pledge IN ('C','P') AND  voting_intention.election_date != '2012-07-05'))
于 2012-06-28T13:22:54.970 回答