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

标签 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)

有人可以帮忙吗?谢谢!

最佳答案

是的,但是当您进行这样的相等性测试(=、<、> 等...)时,子查询必须返回单个值。否则它将是 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/

相关文章:

javascript - 根据选择(输入)是否可见更改 'required' 属性

php - 测试一个范围是否与另一个数字范围相交

mysql 5.7 日志慢查询错误

mysql - 查看一周中特定时间和某一天的后续时间数据

php - 打印数据库的所有字段

mysql - 如何编写从多个表返回值的 SQL SELECT 语句?

php - Cakephp 3.0单元测试错误

javascript - PHP AJAX session 变量不起作用

PHP - Shell_exec 和 exec 在运行时返回 false

mysql - 从 MySQL 表中选择不存在关系的所有行作为空单元格