SELECT value_id FROM table1 ORDER BY RANDOM() LIMIT 1
을 나는 3 개 테이블이 있습니다 표 1과 표 2 - 그들은 행과 그 값의 ID를 가지고 테이블입니다 . 테이블 1과 테이블 2의 행 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에서 나는 뉴욕이 미국에있는 도시이며, 등등 말할 수 있습니다. 그리고 table3에서도 정의되지 않은 값을 가질 수 있습니다. (이 예에서는 아프리카와 중국이므로 결과에 넣고 싶지 않습니다.)
내가 원하는 것은 table1의 무작위 ID에서 얻는 것이지만 table3에 정의 된 것만 얻는 것입니다. 이 특별한 경우에 저는 5와 6을 받기를 원하지 않습니다.
목표를 달성하기 위해 쿼리를 다시 작성하려면 어떻게해야합니까?
미리 감사드립니다.
편집 : 문제는 테이블 3의 행이 정의되지 않은 행을 가져 오려고 할 때 응용 프로그램이 충돌한다는 것입니다. 이전에 썼던 것처럼 그것은 NULL이 아니며 table3에는 존재하지 않습니다. 사례를 올바르게 처리하도록 쿼리를 다시 작성하려면 어떻게해야합니까?
random() = order by table1.value_id – Mash
감사합니다. 그것이 내가 필요한 것입니다. 그리고 table3에 정의 된 값이 없다면 쿼리에서 결과를 얻지 못하게하는 방법은 무엇입니까? –
그것은 당신이 필요로하는 것이 아닙니다 - 당신은 무작위 열이 아니라 무작위 열이 필요합니까? 적절한 SQL을 사용하여 응답 한 적이 있습니다. – Mash