措辞不好,因为我对SQL中的这些操作不太熟悉,假设我有一个表的东西分区,另一个表中有一个名为address_state的表。我希望能够加入对ADDRESS_STATE的UCASE等于要么STATE_ABBREVIATION或STATE_NAMESQL如果连接不匹配然后加入其他东西
EG:
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
OR
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的表/视图。订单和订单是错误的吗? – 2011-04-12 17:24:44
是的,消毒。 – davidahines 2011-04-12 17:49:46