Mysql连接多个表和列重复[关闭]

问题描述 投票:-1回答:1

我知道如何连接多个表,但我试图在两个不同的列中显示从1列中获取的值。

所以:

table1.codseller = table2.id和table1.codbuyer = table2.id

例:

TABLE1

id_ord    | order | codseller  | codbuyer| qty           | price
----------+-------+------------+---------+---------------+---------
09518709  | 4     | 001        | 002     | 8888          | 5
09518710  | 5     | 002        | 004     | 8888          | 6
09518712  | 6     | 001        | 006     | 8888          | 9
09518713  | 7     | 001        | 003     | 8888          | 4


TABLE2

    id        | location | 
    ----------+-------+--
    001       | USA      | 
    002       | CAN      | 
    003       | GER      | 
    004       | USA      | 
    005       | GER      | 
    006       | UKN      |  



RESULT:

id_ord    | order | codseller  | codbuyer| sel_loca     | buy_loc
----------+-------+------------+---------+---------------+---------
09518709  | 4     | 001        | 002     | USA          | CAN
09518710  | 5     | 002        | 004     | CAN          | USA
09518712  | 6     | 001        | 006     | USA          | UKN
09518713  | 7     | 001        | 003     | USA          | GER
mysql sql join inner-join
1个回答
1
投票

您可以使用子查询,如下所示。

SELECT 
  A.id_ord,
  A.id_ord,
  A.order,
  A.codseller,
  A.codbuyer,
 (SELECT location FROM TABLE2 B WHERE B.id=A.codseller LIMIT 1) sel_loca, -- this should work as just a single result will be returned
 (SELECT location FROM TABLE2 B WHERE B.id=A.codbuyer LIMIT 1) buy_loc
FROM TABLE1 A;

query run on SQL Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.