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;

query run on SQL Fiddle

以上是关于Mysql连接多个表和列重复[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 表和列的注释

数据库、表和列的命名约定? [关闭]

MySql 从表和列中删除排序规则

透视sql server多个表和列

Hibernate MySQL 查找未映射的表和列

abp 框架拓展mysql 迁移:增加数据库表和列备注