是否可以在另一个SELECT语句中使用SELECT语句的结果?

SRe*_*eca 2 php mysql select

这是我的代码,但我确定它不是正确的方法.

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)
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢!

Mar*_*c B 5

是的,但是当你进行这样的等式测试(=,<,>等等)时,子查询必须返回一个值.否则它就是somevalue = [list of result rows],这没有任何意义.

你想要:

SELECT * FROM BlockUsers
WHERE OwnerID IN (SELECT ID FROM UserAccounts WHERE.....)
              ^^--- use 'in' instead of '=';
Run Code Online (Sandbox Code Playgroud)