gpt4 book ai didi

mysql - SQL Select 必须在 1 行中返回 2 个表中的 2 个不同值

转载 作者:行者123 更新时间:2023-11-29 11:20:32 24 4
gpt4 key购买 nike

在 MySQL 中,我有 2 个表和一个查询,例如:

SELECT t1.id, t1.desc_short, t2.body FROM table1 t1, table2 t2 WHERE t1.desc_short = t2.name AND t1.id = 100321654

table1 包含对象,table2 包含它们的字符串名称(table2、table3、...、tableN 是语言表)

我的问题是,在 t1 中,我有一个列“name”,它是对象的名称,所以我去 table2 查找它的字符串,并且在 t1 中有一个列“desc”,它是对象的描述,它可以在table2中也可以找到,但不是同一行。

table1(对象)就像:

    id     |     desc_short     |   desc_long
169461235 | STR_DESC_SHORT1 | STR_DESC_LONG1

表2就像:

id     |       name       |   body
10000 | STR_DESC_SHORT1 | name of object 169461235
10354 | STR_DESC_LONG1 | desc of object 169461235

是否有可能在一个仅返回一行的 SQL 查询中捕获一个特定对象的名称和描述?

编辑:添加了表格示例。抱歉,列名令人困惑。因此,在返回一行的一个 SELECT 中,我需要:

    id     |         desc_short          |         desc_long
169461235 | name of object 169461235 | desc of object 169461235

最佳答案

您需要加入“字符串表”两次,如下所示:

SELECT t1.id, nameTbl.body AS `nameStr`, descTbl.body AS `descStr`
FROM table1 AS t1
INNER JOIN table2 AS nameTbl ON t1.DESC_SHORT = nameTbl.name
INNER JOIN table2 AS descTbl ON t1.DESC_LONG = descTbl.name
WHERE t1.id = 100321654
;

关于mysql - SQL Select 必须在 1 行中返回 2 个表中的 2 个不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002344/

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