私は 6 つのテーブルを持っています。それらを a、b、c、d、e、f と呼びましょう。ここで、すべてのテーブルのすべての列 (ID 列を除く) で特定の単語を検索したいとします。たとえば、'Joe' としましょう。私がしたことは、すべてのテーブルに対して INNER JOINS を作成し、LIKE を使用して列を検索することでした。
INNER JOIN
...
ON
INNER JOIN
...
ON.......etc.
WHERE a.firstname
~* 'Joe'
OR a.lastname
~* 'Joe'
OR b.favorite_food
~* 'Joe'
OR c.job
~* 'Joe'.......etc.
結果は正しいです。探していたすべての列を取得します。しかし、ある種のデカルト積も得られます.2行以上でほぼ同じ結果が得られます。
どうすればこれを回避できますか? 結果はWeb検索に表示されるはずなので、各行を1回だけにしたいです。
アップデート
最初に、次のSELECT DISTINCT
ステートメントを使用して、これが機能するかどうかを判断しようとしました: pastie.org/970959しかし、それでもデカルト積が得られます。これの何が問題なのですか?