gpt4 book ai didi

php - 如何使用 mysql 中的连接从一个表中选择一行并从另一个表中选择多行,

转载 作者:行者123 更新时间:2023-11-28 23:16:07 25 4
gpt4 key购买 nike

我搜索了谷歌,所有内容都使用连接进行了解释,但我不需要第一个表的重复数据,我想要第一个表中的单行。

考虑表 a 有两列 id 和 name

id | name

1 | jhon

2 | rock

表b有两列id是外键引用表a的id和位置

id | nickname

1 | steve

1 | smith

2 | kiran

我想输出为

id | name | nickname

1 | jhon | steve

| smith

最佳答案

您可以使用简单的内部 JOIN 来执行此操作,例如:

SELECT ta.id, ta.name, tb.nicname
FROM tablea ta JOIN tableb tb ON ta.id = tb.id;

这会导致一个用户有多个记录,如果只得到一个记录,可以使用GROUP_CONCAT,例如:

SELECT ta.id, ta.name, GROUP_CONCAT(tb.nicname)
FROM tablea ta JOIN tableb tb ON ta.id = tb.id
GROUP BY ta.id, ta.name;

更新

要获得预期的输出,您可以在查询中定义变量并使用 IF 返回值,例如:

SELECT IF(@previous = ta.id, '', ta.id) as id, IF(@previous = ta.id, '', ta.name) as name, 
tb.nickname, @previous := ta.id
FROM table1 ta JOIN table2 tb ON ta.id = tb.id,
(SELECT @previous := '') a ;

这将返回一个额外的列,但您可以在解析结果时忽略它。

关于php - 如何使用 mysql 中的连接从一个表中选择一行并从另一个表中选择多行,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43801461/

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