SQL에서 이러한 연산을 처음 사용하기 때문에 단어가 잘못되었습니다. 동부 및 서부 지역에 address_state라는 필드가있는 테이블이 있다고 가정합니다. 나는조인이 일치하지 않는 경우 SQL 추가 다른 조인
예를 들어 STATE_ABBREVIATION OR을 STATE_NAME 중 하나와 동일한 것으로 address_state의 UCASE에 가입 할 수 있도록하려면 :
SELECT orders.total_value, territories.territory FROM orders
INNER JOIN tblCanadianTerritories ON
UCASE(orders.technical_address_state) = tblCanadianTerritories.state
OR
tblCanadianTerritories ON
UCASE(orders.technical_address_state) = tblCanadianTerritories.name
WHERE UCASE(orders.technical_address_country) = "CANADA"
편집 :
:이 두 가지 가능한 솔루션에왔다
SELECT so_order.id, so_order.date_entered, so_order.check_if_new_customer, tblCanadianTerritories.territory, so_order.total_value FROM so_order
INNER JOIN tblCanadianTerritories ON
UCASE(so_order.technical_address_state) = tblCanadianTerritories.state
OR
UCASE(so_order.technical_address_state) = tblCanadianTerritories.name
WHERE UCASE(so_order.technical_address_country) = "CANADA"
ORDER BY so_order.date_entered ASC
또는
SELECT so_order.id, so_order.date_entered, so_order.check_if_new_customer,
tblCanadianTerritories.territory, so_order.total_value FROM so_order
INNER JOIN tblCanadianTerritories ON UCASE(so_order.technical_address_state) =
tblCanadianTerritories.state
WHERE UCASE(so_order.technical_address_country) = "CANADA"
ORDER BY so_order.date_entered ASC
UNION
SELECT so_order.id, so_order.date_entered,so_order.check_if_new_customer,
tblCanadianTerritories.territory, so_order.total_value FROM so_order
INNER JOIN tblCanadianTerritories ON UCASE(so_order.technical_address_state) =
tblCanadianTerritories.name
WHERE UCASE(so_order.technical_address_country) = "CANADA"
ORDER BY so_order.date_entered;
하지만 둘 다 다른 결과를 얻는 것으로 보입니다.
(별명으로 지금)
합니다. tblCanadianTerritories라는 테이블/뷰를 사용하여 orders라는 테이블/뷰에 참여하고 있습니다. 그런 다음 so_order라는 테이블/뷰를 참조합니다. 주문과 so_orders에 동일한 표가 잘못 입력 되었습니까? –
예, 살균되었습니다. – davidahines