【问题标题】:Receiving "Subquery returns more than 1 row" in MySQL [closed]在 MySQL 中接收“子查询返回超过 1 行”[关闭]
【发布时间】:2013-11-01 00:15:16
【问题描述】:

我有两张桌子

  1. 交易
  2. 成员

在事务表中,所有与事务相关的信息,如 id、date_of_txn、金额都是字段,在成员表中,所有成员相关信息,如成员 ID、成员名称、密码等。两个表都与 mid 连接。当我想通过运行以下查询的成员获取所有事务问题时,问题就在这里:

SELECT * FROM transaction
WHERE amount >=525
and amount <=2500
and txn_issued_by =(select mid from members)

它告诉我:

Error Error : #1242 - Subquery returns more than 1 row

【问题讨论】:

  • Amrita:Barmar 和我不得不修复您的很多问题以使其可读,包括您的表名的各种拼写错误、未格式化的查询以及不立即清楚的缩写。以后请考虑在您的问题上投入更多精力——您可能会发现人们会更愿意努力回答。

标签: php mysql


【解决方案1】:
SELECT * FROM transaction WHERE amount >=525 and amount <=2500 
and txn_issued_by IN (select mid from members)

使用 IN 代替 =

【讨论】:

    【解决方案2】:

    使用 JOIN:

    SELECT t.*
    FROM transaction t
    JOIN members m
    ON t.txn_issued_by = m.mid
    WHERE t.amount BETWEEN 525 AND 2500
    

    【讨论】:

    • 我会的,非常感谢您的宝贵建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多