SQL Server:根据条件连接表

问题描述 投票:0回答:2

我有两个表,想要进行连接并提取目标输出。但我没有得到如图所示的预期结果。

enter image description here

我的询问:

select  
    a.catalog_number,
    a.catalog_image,
    b.catalog_description 
from 
    catalog_type a
inner join
    catalog_description b on a.catalog_number = b.catalog_number

评论:我应该得到 3 行,但查询根据连接条件返回 9 行。

sql sql-server
2个回答
1
投票

我发现你的问题有很多问题。

  1. 查询中命名的表与图片上的不一样,所以我不知道是你查询写错了还是你的图片不对。
  2. 如果我将查询中的表“catalog_details”替换为图像中的catalog_description,则返回的总行数将为 9 或 6。

enter image description here

所以,你的问题在于模型,或者你对模型和数据的概念,而不是查询。

要获得类似于图像上显示的结果,您需要这样的东西。 enter image description here


0
投票
alter table Catalog_Type add Catalog_Type_ID int identity(1,1)

alter table Catalog_description add Catalog_Description_ID int identity(1,1)

select ct.catalag_number, ct.catalog_image,cd.catalog_description 
from Catalog_Type as ct 
inner join Catalog_description cd 
on cd.Catalog_Description_ID = ct.Catalog_Type_ID 

向现有表添加一列,并在 MS SQL Server 上对它们进行唯一编号

您可以在此链接中查看如何将 Id 列添加到表中。

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