私は次のクエリを使用して、私のテーブルからランダムに行を取得しています:のSQLite - 複雑なクエリ
SELECT value_id FROM table1 ORDER BY RANDOM() LIMIT 1
私は3つのテーブルがあります。 TABLE1とtable2のを - 彼らは、行のIDとその値を持つテーブルです。 table1とtable2の行のIDを列として持つtable3もあります。
すなわち:
table1:
1 - Canada
2 - USA
3 - UK
4 - France
5 - Africa
6 - China
table2:
1 - New York
2 - Vancouver
3 - Paris
4 - London
5 - Ottawa
6 - Los Angeles
table3: (without table3 rowid)
1 - 2
1 - 5
2 - 1
2 - 6
3 - 4
4 - 3
ので、表3から、私はニューヨークはアメリカの都市である、などと言うことができます。そしてテーブル3では、私は未定義の値を持つことができます。 (例ではアフリカと中国のため、結果でそれらを取得したくありません)
私がしたいのは、table1のランダムIDから取得することですが、table3で定義されているものだけです。この特定のケースでは、結果として5と6を受け取ることは望ましくありません。
目標を達成するためにクエリを書き直すにはどうすればよいですか?
ありがとうございます。
編集: 問題は、table3の行が定義されていない行を取得しようとしているときにアプリケーションがクラッシュすることです。前に書いたように、NULLではなく、table3には存在しません。ケースを適切に処理するためにクエリを書き直すにはどうすればよいですか?
order by random()= order by table1.value_id – Mash
ありがとう、それは私が必要なものです。そして、もし私が表3で定義された値を持っていなければ、私はその結果を私の問い合わせに入れないようにする方法を教えてください。 –
これはあなたが必要としているものではありません - あなたはランダムな列を必要とし、ランダムな列を必要としませんか? 適切なSQLを使用して、私は答えた。 – Mash