Php mysql中用于不同查询的多个表
最初,我的sql查询用于检查是否有挂起的时间表/加班等待经理审核。。。现在我添加了另一张表上的待命时间表 我以前的sql查询没有$ONCALL\u表,但仍然有效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)"); 现在我正试图将挂起的待
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
)
你犯了什么错误?那会很有帮助的。对不起,我忘了错误。。我现在把它添加到帖子里了。你能说明一下涉及哪些表格吗?每个表之间的关系是什么?是的,我使用了你发布的第二个表,它可以工作!感谢戈登和渗透者的帮助!