结果由多于一行组成。使用LIMIT 1。
你的子查询返回了多行结果,但期望只有一行:
以下是一些常见的导致错误1172的子查询问题:
SELECT * FROM users WHERE id = (SELECT user_id FROM orders); ❌
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders); ✅
SELECT name, (SELECT price FROM products) FROM users; ❌
SELECT name, (SELECT MAX(price) FROM products) FROM users; ✅
SELECT * FROM products WHERE category_id = (SELECT id FROM categories WHERE name LIKE '%book%'); ❌
SELECT * FROM products WHERE category_id IN (SELECT id FROM categories WHERE name LIKE '%book%'); ✅
SELECT * FROM users WHERE id = (SELECT user_id FROM orders WHERE status = 'completed'); ❌
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE status = 'completed'); ✅
使用以下方法调试子查询问题:
当遇到错误1172时: