gpt4 book ai didi

mysql - Visual Basic/MySQL 显示数据

转载 作者:行者123 更新时间:2023-11-30 00:39:51 24 4
gpt4 key购买 nike

我们正在使用 Visual Basic 编写一个程序,我们有一个网格,它显示数据库中的数据。但现在有一个问题,我们显示的是数字而不是实际的单词,这很容易通过一些谷歌来解决,但我们得到了 2 列引用同一个表。因此,更详细地说,我们得到了一张包含引用的表,它的名称是 v_Transport 并具有 id、relationid、carrierid(对于本示例而言,这些已经足够了)数据看起来像这样

1 | 803 | 503
2 | 653 | 321

然后我们有第二个名为“关系”的表,其中包含 id 和名称(同样这些就足够了)

653 | spike
321 | google
803 | stackoverflow
503 | humbletest

通常我会做类似的事情

select t.id, r.name
from transport t, relations r
where r.id = t.relationid

如果只有一个引用但同一个表有 2 个引用,则此方法可行。只是一件小事,我无法测试我的查询,所以我很确定它不起作用,甚至接近工作。但我的问题是:让数据以正确的方式显示的好方法是什么

1 | stackoverflow | humbletest
2 | spike | google

如果可能的话,提供代码解释以及可能的来源链接以获取有关该主题的更多信息。

最佳答案

怎么样

select  t.id, r.name relation_name, rc.name carried_name
from transport t INNER JOIN
relations r ON r.id = t.relationid INNER JOIN
relations rc ON rc.id = t.carrierid

这是从源表中的两个不同字段两次连接到同一个引用表的方式。

如果您不确定是否填充了所有引用 ID,您最好使用LEFT JOIN

select  t.id, IFNULL(r.name,'NA') relation_name, IFNULL(rc.name,'NA') carried_name
from transport t LEFT JOIN
relations r ON r.id = t.relationid LEFT JOIN
relations rc ON rc.id = t.carrierid

然后,如果您愿意,您还可以使用 IFNULL 来显示您想要的内容。

关于mysql - Visual Basic/MySQL 显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com