程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了用第二个表中的名称替换同一个表中 2 列中的 id大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决用第二个表中的名称替换同一个表中 2 列中的 id?

开发过程中遇到用第二个表中的名称替换同一个表中 2 列中的 id的问题如何解决?下面主要结合日常开发的经验,给出你关于用第二个表中的名称替换同一个表中 2 列中的 id的解决方法建议,希望对你解决用第二个表中的名称替换同一个表中 2 列中的 id有所启发或帮助;

我试图从我的 Connections 表中选择所有 Song1 和 Song2 行,但不是显示 ID 号,我想使用我的 Songs 表将数字替换为歌曲名称

这是我尝试过的事情,我得到了什么:

SELEct name,name 
from Connections 
JOIN Songs
ON Songs.songID = CAST(Connections.song1 AS varchar)
JOIN Connections as Connections2
ON Songs.songID = CAST(Connections2.song2 AS varchar);

^ 这给了我 2 个相同的列,只显示第 6 首歌曲(因为它同时用于歌曲 1 和歌曲 2)

SELEct name from Songs
JOIN Connections
ON Songs.songID = connections.song1

SELEct name from Songs
JOIN Connections
ON Songs.songID = connections.song2

^ 上面的给出了 Song1 列的期望结果,而下面的给出了 Song2 列的期望结果,但我不知道如何加入它们。

我正在使用 Microsoft sql Server Management studio 并且不熟悉 sql

连接表:

Song1 Song2
1 2
3 4
5 6
6 7

歌曲表:

SongID 姓名
1 转身
2 原因
3 太阳系
4 生成器
5 警笛
6 圆圈
7 地堡

前 4 行所需的输出为:

Song1 Song2
转身 原因
太阳系 生成器
警笛 圆圈
圆形 地堡

解决方法

以下查询适用于 MySQL,我相信这也适用于 MS SQL。我们在这里使用嵌套查询,嵌套查询的输出将给出 SongId 以从 SongTable 中提取歌曲的名称。

SELEct SongTable.Name from SongTable
where SongId in (SELEct Song1,Song2 from ConnectionTable where ConnectionId="?");
,

您想要两个连接:

SELEct s1.Name,s2.Name 
from connections c join
     songs s1
     on s1.SongID = c.song1 join
     songs s2
     on s2.SongId = c.song2;

以下内容适用于原始问题,并且显然是提案进行了修改。

您的数据模型和查询有点混乱:

  • 为什么要将 song1 转换为字符串?那应该没有必要。链接两个表的列应该具有相同的类型——并声明为外键。
  • 为什么名为 name 的列存储为数字?

这些问题不需要回答。它们只是对数据设计的反馈。

大佬总结

以上是大佬教程为你收集整理的用第二个表中的名称替换同一个表中 2 列中的 id全部内容,希望文章能够帮你解决用第二个表中的名称替换同一个表中 2 列中的 id所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。