-1

我在 SQL 中有 3 个表,如下所示:

帐户,包含

id     zip     city 
----   -----   ---------------
121    20085   Los Angeles

客户,包含

user id   zip  
-------   ------
121       20085

地址,包含

zip     city-state
-----   ----------------
121     Los Angeles, CA

我想在Accounts调用中添加一个额外的列,location这将是一个连接字段,它将通过匹配将它与cityfromAccounts连接起来。city-stateAddrcity

我不能进行常规连接,因为所有的zipinAccounts都不在那里,Addr所以我会丢失很多记录,但是表Customer包含所有的zipuser id所以我想我可以利用它。

所需的输出:

帐户,包含

user id    zip    city              location 
-------    -----  ----------------  ----------------
121        20085  Los Angeles       Los Angeles;Los Angeles, CA 
4

1 回答 1

0

你是否在追求这样的事情:

SELECT
  `c`.`user_id`, 
  `c`.`zip`, 
  `a`.`city`,
  CONCAT_WS( ';', `c`.`city`, `aa`.`city-state` ) AS `location`
FROM
  `Accounts` AS `a`
LEFT JOIN
  `Addr` AS `aa`
     ON
        `aa`.`zip`, `a`.`id`
LEFT JOIN
  `Customer` AS `c`
     ON
        `c`.`user id`, `a`.`id`
于 2013-06-19T13:45:10.617 回答