我有一个查询来选择办公室的特定日期。
select
a.sat_date,
b.officeid
from
OfficeHours a
where
sat_date = '9:30 AM'
and officeik in (select OfficeIK from office where officeid = 50000) b
我需要在主查询中选择子查询列officeid
。上面的查询会抛出syntax error.
感谢您的帮助。
答案 0 :(得分:4)
您不能在子查询中使用officied
列,因为该子查询选择列表不包含此列,而且还包括它在where条件中的原因,而不是某些连接/应用。
相反,您可以加入该子查询并使用它像这样的列:
select
a.sat_date,
b.officied
from OfficeHours as a
inner join (select * from office where officeid = 50000) as b on b.officeik = a.officeik
where a.sat_date = '9:30 AM'
或(甚至更简单,更自然):
select
a.sat_date,
b.officied
from OfficeHours as a
inner join office as b on b.officeik = a.officeik
where
a.sat_date = '9:30 AM'
and b.officeid = 50000
答案 1 :(得分:1)
您可以使用内部联接:
select a.sat_date ,b.officied
from OfficeHours a inner join office b on(a.officeik=b.OfficeIK)
where a.sat_date = '9:30 AM' and b.officeid=50000
答案 2 :(得分:1)
您可以使用INNER JOIN
,如果您想使用子查询,可以试试这个:
select a.sat_date, 50000 AS officeid
from OfficeHours a
where sat_date = '9:30 AM'
and officeik in
(select OfficeIK from office where officeid = 50000)