这是我的代码,但我确定这不是正确的做法。
mysql_query("SELECT * FROM BlockUsers
WHERE OwnerID =
(SELECT ID FROM UserAccounts WHERE Code='$UserCode')
AND
BlockID =
(SELECT ID FROM UserAccounts WHERE Code='$BlockUserCode')
LIMIT 1", $DB)
有人可以帮忙吗?谢谢!
最佳答案
是的,但是当您进行这样的相等性测试(=、<、> 等...)时,子查询必须返回单个值。否则它将是 somevalue = [list of result rows]
,这是没有意义的。
你想要:
SELECT * FROM BlockUsers
WHERE OwnerID IN (SELECT ID FROM UserAccounts WHERE.....)
^^--- use 'in' instead of '=';
关于php - 是否可以在另一个 SELECT 语句中使用 SELECT 语句的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180613/