SQL - 从两个表中创建与回显数据的关系

Posted

技术标签:

【中文标题】SQL - 从两个表中创建与回显数据的关系【英文标题】:SQL - create relation to echo data from two tables 【发布时间】:2013-01-19 23:59:06 【问题描述】:

我做了一些研究,但还没有找到实现这一目标所需的确切概念:

::: EDIT ::: 我最初的请求不清楚,所以我在这里再试一次

我有两张桌子,

table_01 有四列:id / name / address / id_cattable_02 有两列:id_cat / category

table_01table_02 中的id_cat 只是一个 INT(10),而 category 是一个 VARCHAR,应该包含类别的确切名称(很长)。我想要做的是,当在table_01 上进行查询时,回显显示table_01 的行作为结果,但不是将id_cat 显示为数字,而是显示来自table_02@987654337 的文本@。

结果如我所料,但是,例如在table_02 中,我有一行id_cat = 1 ,category = AAAAA,我想从@987654342 回显id_cat @ 作为来自table_02category,所以仍然例如,002 |站立 |市场街125号| AAAAA 而不是我现在得到的,即 002 |站立 |市场街125号| 1.

我还没有在两个表之间创建关系。

【问题讨论】:

【参考方案1】:

如果我了解您的需求,您对数据的查询只需类似于:

select t1.id as id, t2.category as category from tab_01 as t1
left join tab_02 as t2 on t1.id_cat = t2.id_cat where t1.id = '5';

5 显然是您在 tab_01 中寻找的 id。

【讨论】:

谢谢。在这种情况下,我是否理解不需要在此示例 tab_01 和 tab_02 的两个表之间创建任何关系? 是的,您不需要直接创建关系,尽管这可能是可取的。无论您是否定义了两者之间的特定关系,您都可以在任何列上连接两个表。 谢谢克里斯,我会从这里拿走。【参考方案2】:

我不是很清楚你的问题。但我认为这会对你有所帮助。

现在您已经在这两个表之间创建了一对多的关系。这意味着一个类别 (tab_02) 可以有多个 tab_01 数据。

你可以试试这个查询:

SELECT t1.id_cat AS id_cat_number, t2.* 
FROM tab_02 t2 
INNER JOIN tab_01 t1 ON t1.id_cat = t2.id_cat 
WHERE t2.category = XXXXXXXX

【讨论】:

以上是关于SQL - 从两个表中创建与回显数据的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个 DataMap 中创建与 ObjEntity 的关系?

在 Windows 中创建与 kinit 一起使用的密钥表

在SQL中创建与条目排名位置对应的列

单链表中创建与遍历

Android 手机卫士--获取联系人信息并显示与回显

如何在熊猫中创建与多列相结合的数据框列