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')この情報はelectorテーブルにあるため、electors.IDとvoting_intention.electorの間に一致がない場合でも、この情報を取得する必要があるため、問題は回線にあります。

そのための方法は、この行をWHERE方程式の最初に配置することです。

4

3 に答える 3

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

また、完全結合のレコードだけでなく、すべてのレコードを選択するための左外部結合も実行できます。

WHERE electors.ID(+) = voting_intention.elector 

そのようなもの...(未テスト)

于 2012-06-28T13:16:24.617 に答える
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 に答える