Mysql子查询检索数据时出现问题

Mysql子查询检索数据时出现问题,mysql,Mysql,我试图运行一个查询,但我的结果不是我所需要的。 所以问题是: 一个用户可以是director,如果是这种情况,他可以看到他的部门的所有活动,他也可以是另一个部门的用户,在这种情况下不是director,而是惟一的用户。 我有8个部门,每个部门有一名主管,因此下面的查询应该会告诉我该部门的活动以及该特定用户在其他部门的活动: SELECT t1.idAtividade, t1.idProfessor, t2.Escola, t1.Atividade, t1.

我试图运行一个查询,但我的结果不是我所需要的。 所以问题是: 一个用户可以是director,如果是这种情况,他可以看到他的部门的所有活动,他也可以是另一个部门的用户,在这种情况下不是director,而是惟一的用户。 我有8个部门,每个部门有一名主管,因此下面的查询应该会告诉我该部门的活动以及该特定用户在其他部门的活动:

SELECT t1.idAtividade, 
    t1.idProfessor,
    t2.Escola,  
    t1.Atividade, 
    t1.Periodo, 
    t1.Mes, 
    t1.haveClasses,
    t1.DataPrevista,
    t1.Destinatarios, 
    t1.Orcamento, 
    t1.PdfAtividade, 
    t1.Avaliacao, 
    t1.PdfAvaliacao,
    t1.idProfessor,
    p.Nome,
    g.Grupo,
    d.Departamento,
    p2.Projeto,
    t1.idProjeto
    FROM atividades AS t1
    INNER JOIN professores p on t1.idProfessor = p.idProfessor
    INNER JOIN atividadesgrupos ag on t1.idAtividade = ag.idAtividade
    INNER JOIN grupos g on ag.idGrupo = g.idGrupo
    INNER JOIN departamentosatividades da on t1.idAtividade = da.idAtividade
    INNER JOIN departamentos d on da.idDepartamento = d.idDepartamento
    INNER JOIN escolas AS t2 ON (t2.idEscola = t1.idEscola)
    INNER JOIN anosescolares AS ae ON (t1.idAnoEscolar = ae.idAnoEscolar)
    INNER JOIN projetos p2 on t1.idProjeto = p2.idProjeto
    WHERE ae.Estado = 1 AND (da.idDepartamento = :id_dpt and ag.idGrupo = :idGrupo)
    ORDER BY (t1.idProfessor = :idProfessor) DESC, t1.idProfessor;");
此查询不起作用,因为该部门有22项活动,但此用户(idProfessor)在该部门有5项活动,在另一个部门有14项活动(由idGrupo定义)
我想我需要一个子查询,对吗?

在where子句中:
:id\u dpt
:idGrupo
:idProfessor
是变量吗?否则,您应该在
内部连接中使用
g.idGrupo
like。如果您可以显示
INT、VARCHARS和其他数据类型,并显示它们被搜索内容替换的变量,这将有所帮助。您的SQL查询端看起来有点不规则:
DESC,t1.idProfessor;);
-我的意思是没有开双引号。是的..它们都是变量..它们都是INTokay,您的sql查询是内置于php、python还是其他编程语言中的?它是针对php的…谢谢我找到了一个提示-尝试一下:
*注意:不要在生产环境中使用此选项。