我從我的表,可以使用下面的查詢獲取隨機行:SQLite的 - 複雜的查詢
SELECT value_id FROM table1 ORDER BY RANDOM() LIMIT 1
我有3個表: 表1和表2 - 它們是具有行和其價值的ID表。 還有table3,它具有table1和table2中的行ID列。
即:
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獲得,但只有那些在表3中定義的。在這種特殊情況下,我不希望收到5和6。
如何重寫我的查詢以實現我的目標?
預先感謝您。
編輯: 問題是,當我試圖得到一行的table3中沒有定義的行時,應用程序引發了。它不是NULL,就像我以前寫的那樣,它在table3中不存在。我如何重寫查詢來正確處理我的情況?
order by random()= order by table1.value_id – Mash 2009-04-26 18:19:13