Я получаю случайную строку из моей таблицы с помощью следующего запроса:SQLite - сложных запросов
SELECT value_id FROM table1 ORDER BY RANDOM() LIMIT 1
У меня есть 3 таблицы: table1 и таблица2 - они представляют собой таблицы, которые имеют идентификатор строки и его значение , также есть таблица3, которая имеет в качестве столбцов идентификаторы строк в таблице 1 и таблице2.
т.е.:
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 в результате.
Как я могу переписать свой запрос для достижения своей цели?
Благодарим вас заблаговременно.
Редактировать: Проблема заключается в том, что когда я пытаюсь получить строку, строка которой в таблице3 не определена, приложение cruses. Это не NULL, как я писал ранее, он просто не существует в таблице3. Как я могу переписать запрос для правильной обработки моего дела?
заказ by random() = order by table1.value_id – Mash
Спасибо, это то, что мне нужно. И если у меня нет значения, определенного в таблице 3, как убедиться, что я не получу этот результат в моем запросе? –
Это НЕ, что вам нужно - вам нужна случайная ROW, а не случайная COLUMN? Я ответил ниже с помощью соответствующего SQL. – Mash