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_cat
和
table_02
有两列:id_cat
/ category
table_01
和 table_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_02
的category
,所以仍然例如,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 - 从两个表中创建与回显数据的关系的主要内容,如果未能解决你的问题,请参考以下文章