2015-06-22 5 views
0

В принципе, я хочу, чтобы внутреннее соединение состояло из 3 таблиц, и этот вопрос понимается самим запросом следующим образом.Inner Join 3 tables pl/sql

Таблицы:

A has 2 columns column 1 and column 2 
B has 2 columns column 3 and column 4 
C has 3 columns column 5,column 6 and column 7 

Запрос:

select A.column1, C.Count(C.column6) 
from table1 as A inner join table3 as C on A.column2 = C.column5 
inner join table2 as B on C.column5 = B.column4 and column3 = 'abcd' 
where column7 > NOW() - Interval '30 days' 
group by C.column5 
order by C.count(column5) desc 

Но я получаю ошибки схемы C не существует

Почему это происходит? Любая ошибка в запросе?

ответ

2

Проблема в том, что вы используете псевдоним C, где вы не должны, с функцией count. Это:

C.Count(C.column6) 

должен быть:

Count(C.column6) 

и то же изменение применяется в пункте order by (который может быть подсчетом неправильного столбца - если она не column6?):

order by C.count(column5) desc->order by count(column6) desc

Также: вы должны ссылаться на все не-aggr в колонке group by, поэтому, вероятно, должно быть group by A.column1