【问题标题】:I have to update all the rows in a table. Here is my query我必须更新表中的所有行。这是我的查询
【发布时间】:2012-11-26 03:46:07
【问题描述】:
UPDATE tracks 
SET People_id_Reference = (SELECT People_id 
                           FROM People 
                           RIGHT JOIN top100 
                           ON 
                           People_name=top100.artist ) 
                           WHERE People_id_Reference IS NULL;

但我得到这样的错误:

ERROR 1242(21000): SUBQUERY RETURNS MORE THAN ONE ROW

有人可以帮我解决这个问题吗?在此先感谢

【问题讨论】:

  • 如果我使用 'IN' 而不是 '=' 我得到 sql 语法错误 1064(42000)

标签: nested-queries mysql-error-1242


【解决方案1】:

最简单的方法是将LIMIT 1 附加到子查询的末尾,以仅强制它返回单行。

【讨论】:

  • 但这会将相同的 people_id 插入到 People_id_Reference 的所有行中。有没有其他办法??
【解决方案2】:

像这样更改您的代码: 选择 * 来自package_reviews 其中post_id = 任何(选择post_id 来自wp_posts 在哪里post_author=1); 这个链接非常有用 http://dev.mysql.com/doc/refman/5.0/en/subquery-errors.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多