브리징에 문제가있는 레일즈 앱에 한 쌍의 모델이 있습니다. 다른 테이블에서 값을 비교할 쿼리?
이
내가 함께 일하고 있어요 테이블은 다음과 같습니다상태
+----+--------+
| id | place |
+----+--------+
| 1 | Fl |
| 2 | Calif. |
| 3 | Texas |
| … | … |
+----+--------+
모든 장소가 국가 모델에서 표현되는 것은 아닙니다
+----+--------+------------+
| id | fips | name |
+----+--------+------------+
| 1 | 06 | California |
| 2 | 36 | New York |
| 3 | 48 | Texas |
| 4 | 12 | Florida |
| 5 | 17 | Illinois |
| … | … | … |
+----+--------+------------+
장소,하지만 난에 노력하고있어 장소의 place
값을 모든 상태 name
에 대해 비교할 수있는 검색어를 수행하고 가장 일치하는 항목을 찾아 해당를 반환합니다. 10. 내 입력 Calif.
경우
그래서, 난 내 출력 내가 SQL 쿼리를 작성 여전히 아주 새로운, 그래서 06
되고 싶어 내 레일 이내에 사용하여 루비를 할 수있는 방법 (4.1.5가 있다면) app, 이상적입니다.
내 다른 공격 계획은 "places"테이블에 fips
열을 추가하고 위의 비교를 실행하고 fips
을 채울 수있는 내용을 작성하여 내 앱이이 페이지를로드 할 때마다이 쿼리를 실행할 필요가 없도록하는 것이 었습니다 . 그러나 나는 초심자이기 때문에 야심적 인 것처럼 들린다.
'places.place' 필드에 약어가있는 이유가 있습니까? –
SQL을 고려하기 전에, 일반적으로'places '의'place'에서'states'의'name'까지 어떤 종류의 일치 스키마가 당신을 얻을 수 있는지 결정할 필요가 있습니다. – lurker
* most * 부분에 대해서는'places.place' ='Florida State'와'states.name' ='Florida'와 같이 보일 것입니다. 항상 그런 것은 아니지만 충분한 경우에, 그것은 대회가 될 것입니다. –