从表中获取值并在同一查询中使用

时间:2014-02-06 17:30:24

标签: sql postgresql

SELECT (h.horario), h.codigo
FROM horarios as h
JOIN horario_turma as h_t
ON(h.codigo != h_t.cd_horario)
WHERE h_t.cd_turma = 'HTJ009' 
AND h_t.cd_dia = 2
AND h.cd_turno = 1

我试图弄清楚是否有可能从另一个表中获取h.cd_turno值并在同一个查询中使用,因为这个值会变化。所以,我必须从查询中获取此值,然后将值传递给PHP并使用此值执行另一个查询。有没有办法在同一个查询中执行此操作?

有一个名为turmas(codigo, cd_turno)的表格。我将获得codigo值,在这种情况下为HTJ009,我想选择cd_turno值。

用于获取值的查询:

SELECT cd_turno FROM turmas WHERE codigo='HTJ009'

2 个答案:

答案 0 :(得分:0)

SELECT (h.horario), h.codigo
FROM horarios as h
JOIN horario_turma as h_t
ON(h.codigo = h_t.cd_horario)
WHERE h_t.cd_turma = 'HTJ009' 
AND h_t.cd_dia = 2
AND h.cd_turno = 1 and h_t.cd_horario is null

答案 1 :(得分:0)

您可以使用子查询,如下所示:

SELECT (h.horario), h.codigo
FROM horarios as h
JOIN horario_turma as h_t
ON(h.codigo != h_t.cd_horario)
WHERE h_t.cd_turma = 'HTJ009' 
AND h_t.cd_dia = 2
AND h.cd_turno = (SELECT cd_turno FROM turmas WHERE codigo='HTJ009')

在这种情况下,请记住,子查询只返回一个结果很重要,否则您将遇到错误。如果您确实看到了这样的错误,则可能需要调整子查询以确保只返回一个结果。

检查Postgres subquery documentation