2015-01-07 5 views
0

Существует проблема синтаксиса с помощью следующих двух запросов, которые я не знаю, как исправитьПроблема с использованием таблиц в SQL запросов

Я отправил их here и there

select model from 
(
select model, price from PC 
join Product 
on Product.model=PC.model 
union all 
select model, price from Laptop 
join Product 
on Product.model=Laptop.model 
union all 
select model, price from Printer 
join Product 
on Product.model=Printer.model 
) XXX 
where price = (select max(price) from XXX); 

select model from 
(
    select model, price from pc 
    union all 
    select model, price from laptop 
    union all 
    select model price from printer 
) as x 
where price=greatest(select max(price) from pc, 
         select max(price) from laptop, 
         select max(price) from printer) 

ответ

1

Вы пытаетесь определить модель, которая имеет наибольшую цену? Если да, просто измените свой запрос на сортировку по цене и выберите один результат.

select model from 
(
select model, price from PC 
join Product 
on Product.model=PC.model 
union all 
select model, price from Laptop 
join Product 
on Product.model=Laptop.model 
union all 
select model, price from Printer 
join Product 
on Product.model=Printer.model 
) XXX 
order by price desc limit 0, 1; 

Вы можете использовать ту же технику для второго запроса, как так:

select model from 
(
    select model, price from pc order by price desc limit 0, 1 
    union all 
    select model, price from laptop order by price desc limit 0, 1 
    union all 
    select model, price from printer order by price desc limit 0, 1 
) as x 
Смежные вопросы