Mysql连接多个表和列重复[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql连接多个表和列重复[关闭]相关的知识,希望对你有一定的参考价值。
我知道如何连接多个表,但我试图在两个不同的列中显示从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
答案
您可以使用子查询,如下所示。
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;
以上是关于Mysql连接多个表和列重复[关闭]的主要内容,如果未能解决你的问题,请参考以下文章