Я получаю случайную строку из моей таблицы, используя следующий запрос:
SELECT value_id FROM table1 ORDER BY RANDOM() LIMIT 1
У меня есть 3 таблицы:
table1 и table2 - это таблицы, которые имеют идентификатор строки и ее значение.
кроме того, в таблице table3 есть идентификаторы строк в таблицах table1 и table2.
т.е. :
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 я могу иметь неопределенные значения. (В примере это Африка и Китай, поэтому я не хочу получать их в результате)
Что я хочу сделать, это получить из таблицы1 случайные идентификаторы, но только те, которые определены в таблице3. В данном конкретном случае я не хочу получать 5 и 6 в результате.
Как мне переписать мой запрос для достижения моей цели?
Заранее спасибо.
Edit:
Проблема в том, что когда я пытаюсь получить строку, строка которой в таблице 3 не определена, приложение перегружается. Это не NULL, как я писал ранее, его просто нет в table3. Как я могу переписать запрос, чтобы правильно обработать мой случай?