Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql中用于不同查询的多个表_Php_Mysql - Fatal编程技术网

Php mysql中用于不同查询的多个表

Php mysql中用于不同查询的多个表,php,mysql,Php,Mysql,最初,我的sql查询用于检查是否有挂起的时间表/加班等待经理审核。。。现在我添加了另一张表上的待命时间表 我以前的sql查询没有$ONCALL\u表,但仍然有效 list($qh, $num) = dbQuery("SELECT manager FROM $USER_TABLE WHERE username IN (SELECT DISTINCT uid FROM $TIMES_TABLE WHERE submitstatus=1 OR ot_status=1)"); 现在我正试图将挂起的待

最初,我的sql查询用于检查是否有挂起的时间表/加班等待经理审核。。。现在我添加了另一张表上的待命时间表

我以前的sql查询没有$ONCALL\u表,但仍然有效

list($qh, $num) = dbQuery("SELECT manager FROM $USER_TABLE WHERE username IN (SELECT DISTINCT uid FROM $TIMES_TABLE WHERE submitstatus=1 OR ot_status=1)");

现在我正试图将挂起的待命时间表添加到同一个sql查询中,但我不断收到错误。。。也许有人能帮我修正语法

list($qh, $num) = dbQuery("SELECT manager FROM $USER_TABLE WHERE username IN (SELECT DISTINCT $TIMES_TABLE.uid, $ONCALL_TABLE.uid FROM $TIMES_TABLE, $ONCALL_TABLE WHERE $TIMES_TABLE.submitstatus=1 OR $TIMES_TABLE.ot_status=1 OR $ONCALL_TABLE.submitstatus=1)");
我得到的错误是:
无法执行查询:操作数应包含1列

问题出在子查询中,但我将使用
union all来处理它:

SELECT manager
FROM $USER_TABLE
WHERE username IN (SELECT uid
                   from (select $TIMES_TABLE.uid
                         from $TIMES_TABLE
                         where $TIMES_TABLE.submitstatus=1 OR $TIMES_TABLE.ot_status=1
                         union all
                         select $ONCALL_TABLE.uid
                         from $ONCALL_TABLE
                         where $ONCALL_TABLE.submitstatus=1
                        ) t
                   ) 
不过,老实说,
联合all
可能会干扰索引的使用。这可能会表现得更好:

SELECT manager
FROM $USER_TABLE
WHERE username IN (select $TIMES_TABLE.uid
                   from $TIMES_TABLE
                   where $TIMES_TABLE.submitstatus=1 OR $TIMES_TABLE.ot_status=1
                  ) or
      username in (select $ONCALL_TABLE.uid
                   from $ONCALL_TABLE
                   where $ONCALL_TABLE.submitstatus=1
                  ) 

你犯了什么错误?那会很有帮助的。对不起,我忘了错误。。我现在把它添加到帖子里了。你能说明一下涉及哪些表格吗?每个表之间的关系是什么?是的,我使用了你发布的第二个表,它可以工作!感谢戈登和渗透者的帮助!