gpt4 book ai didi

mysql - 构建 MySql 查询

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

我有一个名为private_message的数据库表。我对其运行以下查询,以获取一个用户 (47762) 向其发送私有(private)消息的所有用户 ID 的结果:

SELECT `to_id` FROM `private_message` WHERE `from_id` = 47762

我现在想在另一个名为 users 的表上使用此查询或其他方式来获取从 47762 收到电子邮件地址的所有用户的电子邮件地址。

我尝试了以下方法:

SELECT * FROM `users` WHERE `sid` = (SELECT `to_id` FROM `private_message` WHERE `from_id` = 47762)

在上面的查询中,users.sid 与 private_messages.to_id 相同

我收到错误 #1242 - 子查询返回超过 1 行。

我想要的是获取从用户 47762 发送私有(private)消息的用户的电子邮件地址,但用户表。

我是 MYSQL 的新手,所以希望能在这里得到一些帮助。

谢谢。

最佳答案

您应该使用 IN 而不是 od =,因为您无法将 (=) sid 与多个值进行比较。

SELECT * FROM `users` WHERE `sid` IN (SELECT `to_id` FROM `private_message` WHERE `from_id` = 47762)

无论如何,您可以在此处进行 JOIN 操作:

SELECT u.* FROM `users` AS u
JOIN `private_message` AS pm ON u.`sid` = pm.`to_id`
WHERE pm.`from_id` = 47762

在大多数情况下它会更有效。

关于mysql - 构建 MySql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399522/

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