SQL 문제가있어서 머리를 쓰려고 고심하고 있습니다. 이 데이터로이 두 테이블을 고려하십시오회사 검색시 우선 순위 주소 목록
회사 :
| id | name |
| 1 |Fake Company|
company_addresses :
| id | company_id | name | address1 | address2 | town | postcode | main
| 1 | 1 | Head Office| Building 2 | RandStreet | London | L1 2FN | t
| 2 | 1 | MAIN | Building 14 | RandRoad | London | L1 6RR | f
내가 그들의 주요 주소와 함께 회사를 검색 할 수 있습니다. 주 주소는 열이 company_addresses
테이블에있는 것으로 표시됩니다. 그러나 데이터가 약간 어수선 해지고 일부 주소가 MAIN
으로 지정됩니다. 일부 회사에는 주소가 전혀 없습니다!
MAIN
으로 표시된 주소를 먼저 검색 한 다음 그 주소가 없으면 MAIN
이라는 주소를 얻고 전혀 반환하지 않는 경우 어떻게해야합니까? 내가 지금 가지고있는 것은 :
SELECT * FROM companies c
JOIN company_addresses ca ON ca.company_id = c.id
WHERE c.name = 'Fake Company'
AND ca.main IS TRUE
하지만 분명히 내가 원하는 우선 순위 목록을 사용하는 대신 주 주소로 표시된 회사 만 다시 불러올뿐입니다.
어떤 데이터베이스 서버를 사용하고 있습니까? 그건 중요 하거든. – penguat
저는 Postgres를 사용하고 있습니다. –
이렇게 태그를 지정하면 postgres 태그를 따르는 사람이 태그를 추가 할 가능성이 높아지고 더 나은 답변을 얻을 수 있습니다. – penguat