大佬教程收集整理的这篇文章主要介绍了用第二个表中的名称替换同一个表中 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,请注明来意。