次のステートメントでクエリを実行すると、Oracle SQL Developer IDE に重複したレコードが表示されます。
SELECT currency.currency_story.story_id,
currency.currency_story.datetimestamp,
currency.currency_story.headline,
currency.currency_story_body.body
FROM
currency.currency_story INNER JOIN
currency.currency_story_body ON
currency.currency_story.story_id = currency.currency_story_body.story_id
WHERE
currency.currency_story.datetimestamp > '18-Oct-12' AND
SUBSTR(currency.currency_story.story_id,10,4) > '1825'
ORDER BY
currency.currency_story.datetimestamp ASC
したがって、両方のテーブル (currency_story と currency_story_body) の一番下のステートメントを実行した後、0 行がフェッチされます。
select currency.currency_story_body.story_id
from currency.currency_story_body
group by currency.currency_story_body.story_id
having count(*) > 1
currency_story テーブルに対して行ったのと同じで、0 行がフェッチされました。これで、各テーブルに重複するレコードがないことがわかりました。だから私は私のJOINが間違っていると推測していますか? しかし、私はそれに欠陥を見ませんか?
これは私の実行計画です:
Mycurrency.currency_story_body.body
は でCLOB
、story_idは主キーではありません。ここで何をすべきですか?