Схоже що дещо з найелементарнішого ви знаєте, тепер можу вам порадити наступне.
1. Використовуйте псевдоніми (аліаси) таблиць та полів, наприклад
[code=sql]select * from table as t[/code]
тут t є псевдонімом для таблиці table. І тепер ваш запит може бути таким select t.column from table. Надалі, коли ви працюватимете з декількома таблицями в одному запиті, оціните зручність.
2. Використовуйте join'и. Нариклад ваш запит, де ви хочете дізнатись максимальну чи мінімальну ціну, буде виконуватись абсолютно для всіх рядків.
[code=sql] WHEN price=(SELECT MAX(price) FROM Product_PC ) THEN 'Ціна максимальна' [/code]
Тобто якщо у вашій вибірці є 1000 рядків, то відповідно 1000 разів буде шукатись одне і теж значення.
Взагалі то, якщо ви працюєте безпосередньо у SQL-редакторі, можна обійтись і константою, яку передавати через MySQL'івську глобальну змінну (довільна глобальна змінна починається знаком @), наприклад так
[code]select
@max_price:=max(price)
,@min_price:=min(price)
from Product_PC;
SELECT model, price,
CASE
WHEN price=@max_price THEN 'Ціна максимальна'
WHEN price=@min_price THEN 'Ціна мінімальна'
WHEN price IS NULL THEN 'модель відсутня'
ELSE price
END coment
FROM Product_PC;[/code]
Але з цими глобальними змінними можуть бути проблеми, якщо ви хочете працювати, наприклад, через PHP, бо там треба враховувати сесії підключення... В такому разі краще писати так
[code=sql]SELECT
p.model
,p.price
,CASE
WHEN p.price = m.max_price THEN 'Ціна максимальна' -- тут порівнюються дані з таблиць "p" та "m"
WHEN p.price = m.min_price THEN 'Ціна мінімальна'
WHEN p.price IS NULL THEN 'модель відсутня'
ELSE price
END coment
FROM Product_PC as p -- тепер до Product_PC можна звертатись через "p"
left join
(
select
model
,max(price) as max_price
,min(price) as min_price
from Product_PC
group by
model
) as m -- тепер до цього внутрішнього запиту можна звертатись через "m"
on p.model = m.model[/code]
3. Використовуйте оператор explain перед select, щоб побачити план виконання даного конкретного запиту.
З третім пунктом можливо вам ще зарано особливо розбиратись, але вже можна поглядати, щоб знати що такий інструмент оптимізації є.