如何在SQL查询中链接多对多 [英] How do I link many to many in SQL query

查看:89
本文介绍了如何在SQL查询中链接多对多的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨大家好



我需要以下帮助



我有3个数据库表



A

B

C



表A和表B具有1对多的关系(Key_Table A =表B中的倍数)

表A和表C也具有1对多的关系(表C中的Key_Table A = Multiple)< br $>


我面临的问题是我需要编写一个查询来从表A,B,C中检索一些信息,例如:




从表A中选择Column1,column2,TableB.column1,TableC.column1





我如何加入这些表格,以便我不会重复记录?



我尝试了什么: < br $>


选择TableA.Column1,TableB.Column1,TableC.Column1



来自TableA

内部加入

TableA在TableA.Column_key = TableB.TableA_key

内部加入

Ta TableA上的bleB.Column_key = TableB.TableA_key

Hi Guys

I need some assistance with the below

I have 3 database tables

A
B
C

Table A and Table B have a 1 to many relationship(Key_Table A = Multiple in Table B)
Table A and Table C also have a 1 to many relationship(Key_Table A = Multiple in Table C)

The problem i am facing is that i need to write a query to retrieve some information from Table A,B,C
for eg.

Select Column1,column2,TableB.column1,TableC.column1
from Table A

How would i join these tables so that i wont get a duplication of records?

What I have tried:

Select TableA.Column1,TableB.Column1,TableC.Column1

From TableA
Inner Join
TableB on TableA.Column_key = TableB.TableA_key
Inner Join
TableB on TableA.Column_key = TableB.TableA_key

推荐答案

因此,您只需要TableC中其中一行的结果行,那么您必须为此添加条件。 br />
So you only want resulting rows from one of the rows in TableC, then you must add a condition for that.
WITH CTE AS (
    SELECT  TableA.KEY
           ,Max(TableC.Column1) AS Column1
    FROM    TableA
    JOIN    TableC ON TableA.Column_key = TableC.TableA_key
    GROUP BY TableA.KEY
    )
SELECT  CTE.KEY
       ,TableB.Column1
       ,CTE.Column1
FROM    CTE
JOIN    TableB ON CTE.KEY = TableB.TableA_key


这篇关于如何在SQL查询中链接多对多的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆