gpt4 book ai didi

mysql - 合并两个表的值时,获取操作数应包含 1 列错误

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

我会尽力解释它。我的英语不是很好。

我想合并两个表中的值。当我只合并一个表时它工作正常,如下所示:

SELECT `friendid`,`friendname`, (SELECT `islogged` FROM `account_data` WHERE `guildcard` = `friendid` ) FROM `guild_data` WHERE `accountid` = '42000007' ORDER BY `friendid` DESC LIMIT 0, 40

但我需要“account_data”表中的两个条目。我想我可以这样做:

SELECT `friendid`,`friendname`, (SELECT `islogged`,`lastonline` FROM `account_data` WHERE `guildcard` = `friendid` ) FROM `guild_data` WHERE `accountid` = '42000007' ORDER BY `friendid` DESC LIMIT 0, 40

但显然这是不正确的,它会抛出一个错误,即:

[Err] 1241 - Operand should contain 1 column(s)

我怎样才能用两列来完成这项工作?这两个值都应取自具有从 friendid 中找到的 guildcard 值的行。

希望我已经说得足够清楚了。

最佳答案

看起来您需要使用 JOIN。试试这个:

SELECT g.friendid, g.friendname, a.islogged, a.lastonline
FROM guild_data g
LEFT OUTER JOIN account_data a
ON g.friendid = a.guildcard
WHERE g.accountid = '42000007'
ORDER BY g.friendid DESC LIMIT 0, 40

使用 LEFT OUTER JOIN 将确保您在 guild_data 中获得的结果在 account_data 中没有行。如果您知道 account_data 中始终有对应的行,或者您想要排除 guild_data 中未映射到 account_data 中任何内容的行code>,请使用 INNER JOIN 代替。

如果这没有给您想要的结果,请告诉我们哪里出了问题。发布您通过此查询得到的结果以及您期望得到的结果。

关于mysql - 合并两个表的值时,获取操作数应包含 1 列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193517/

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