gpt4 book ai didi

MySQL同时选择多个表的几列而不使用JOIN

转载 作者:行者123 更新时间:2023-11-29 23:16:50 27 4
gpt4 key购买 nike

SELECT id, 
(SELECT payer_id FROM transactions WHERE id = user_id),
(SELECT sentence FROM cofg_sentences WHERE id = user_id),
(SELECT name FROM cofg_options WHERE id = user_id),
(SELECT hour FROM cofg_time WHERE id = user_id),
(SELECT field_id, url FROM cofg_feeds WHERE id = user_id),
(SELECT field_id, fb_user FROM cofg_accounts WHERE id = user_id)
FROM users WHERE token = '.......'

我正在尝试执行此查询,但收到此错误:

#1241 - Operand should contain 1 column(s)

如果我删除子查询的第二列,我会得到:

#1242 - Subquery returns more than 1 row

我知道还有其他问题具有相同的错误,但查询不同。我不想使用 JOIN,因为我读过它会降低性能。

这里存在什么问题?感谢任何形式的帮助:)

提前致谢

最佳答案

我不想使用 JOIN,因为我读过它会降低性能`

测量时你发现了什么?

如果您知道优化器正在做什么以及您的数据是什么样子,那么将子查询放在 select 子句中的模式是解决某些性能问题的可行技术

您应该首先使用正确的联接来实现代码,然后在需要更改时进行更改。

#1241 - Operand should contain 1 column(s)

是由

引起的
(SELECT field_id, url FROM

如果适合使用子查询,您可以通过使用分隔符连接值然后稍后拆分它们来避免此错误。

#1242 - Subquery returns more than 1 row

应该是不言而喻的,可以通过聚合行或限制为一行来解决。

关于MySQL同时选择多个表的几列而不使用JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714829/

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