지난 두 주 동안 나는 여러분 모두에 대한 엄청난 도움을 받았습니다 (ok ok가 아닌 ...).하지만 아마도 20 명 이상이 , 그리고 거의 모든 의견이 도움이되었다). 이것은 정말 놀랍습니다. 그리고 나는 stackoverflow 팀이 정말로 훌륭한 것을 한 것을 보여줍니다. 그래서 모두에게 감사합니다!Postgresql에서 다중 쿼리 수행하기 - 조건부 루프
지금 아시는 바와 같이 저는 현재 캠퍼스에서 일하고 있으며 Windows 컴퓨터를 사용해야합니다. (나는 여기에서 창문을 사용해야하는 유일한 사람입니다 ... :
이제는 (내가 할 수있는 일은 IT 부서에서 저에게 해주었습니다) Postgres 데이터베이스를 채 웁니다. , 약 400 메가 바이트 데이터와 함께. 아마도 당신을 위해 무거운 Ppostgre 사용자의 대부분은 아니지만, 거의 2mb를 거의 넘어서는 개인 사용을위한 sqlite 데이터베이스에 익숙했다.
어쨌든, - 이제 해당 데이터베이스의 쿼리는 을 잘 처리합니다. 사실 루비를 사용하여 쿼리를 수행합니다.
Postgres 데이터베이스의 항목은 서로 연결되어 있습니다. 다른 필드를 가리키는 한 필드가 있습니다.
예 : 항목 3667은 항목 15566을 가리키며 항목은 15566을 가리 킵니다. 따라서 매우 간단합니다.
기본 항목은 1이므로 모든 검색어의 끝은 1입니다. 따라서 다른 숫자에서부터 마지막 결과로 1에 도달 할 수 있습니다.
나는 반환 된 마지막 결과가 1이 될 때까지 데이터베이스에 대해 개별 쿼리를 만들기 위해 루비를 사용하고 있습니다. 최대 10 개의 개별 쿼리를 사용할 수 있습니다. 암호와 데이터로 psql에 로그인 한 다음 -c를 통해 SQL 쿼리를 수행하면됩니다. 이것은 아마도 이상적은 아니며 로그인과 쿼리를 수행하는 데 약간의 시간이 걸리며 이상 적으로는 한 번만 로그인하고 Postgres에서 모든 쿼리를 수행 한 다음 결과 (이 모든 항목을 결과로 종료)로 종료해야합니다.
이제 내 질문은 다음과 같습니다. - Postgres의 모든 조건부 쿼리를 만드는 방법이 있습니까?
나는 쉘 스크립트와 루비에서 어떻게하는지 알고 있지만 이것이 postgresql에서 전혀 사용 가능한지 모르겠습니다.
나는 문자 그대로 영어로 쿼리를 만들과 같이해야합니다 : 다음의 모든 반환, 마지막으로 발견 항목 결국 하나가 될 때까지,
이는 "나에게 부모 항목을 가리 모든 항목을주십시오 이 입장. "
나는 이미 "1"이 반환 될 때까지 여러 가지 쿼리를 만들기 위해 루비를 사용하여이 문제를 "해결했다". 그러나 이것은 상당히 우아하고 효과적이지 않을 것이라고 나를 때린다.
모든 정보는 대단히 감사합니다. - 감사합니다!
편집 (아아, 나는 ... 붙여 넣기 실패) :
예 데이터 세트는 테이블은 다음과 같이 될 것이다 :
id | parent
----+---------------+
1 | 1 |
2 | 131567 |
6 | 335928 |
7 | 6 |
9 | 1 |
10 | 135621 |
11 | 9 |
나는 작품, 내가 그것을 전적으로 좁힐 시도 희망 예를 들어.ID 이드 9
예를 들어, ID 11 점, 및 ID 9 포인트 1.
하나가 반환하는 SQL을 사용할 수 있다면 그것은 좋은 것 : 11 -> 9 -> 1
테이블 정의와 샘플 데이터를 추가하고 샘플 데이터의 예상 출력을 –
보겠습니다. hmm ... – shevy
위의 예제 테이블을 추가했습니다. 물론 실제 데이터베이스 테이블보다 훨씬 간단합니다. 크기는 약 240MB입니다.) – shevy