Привет. Есть 3 таблички. drop, drop_sell, drop_buy..
drop(предметы) = |id|name|
drop_sell(Предметы которые выставлены на продажу) = |id|drop_id|price|
drop_buy (Запрос на покупку предметов) = |id|drop_id|price|
Нужно сделать поиск по предметам, вводим имя предмета == находит до 20 совпадений и выводит:
-Имя(из таблицы drop);
-Минимальную цену за какую можно купить(из таблицы drop_sell)
-Максимальную цену за которую можно продать(из таблицы drop_buy )
Я не особо сильно эксперт в SQL, третий день голову ломаю, облазил тону форумов...
Чем больше знаю, тем лучше понимаю, как мало знаю.
SELECT drop.name, MIN(drop_sell.price) AS min_price, MAX(drop_buy.price) AS max_price
FROM drop
LEFT JOIN drop_sell ON (drop_sell.drop_id=drop.id)
LEFT JOIN drop_buy ON (drop_buy.drop_id=drop.id)
WHERE drop.name='name'
GROUP BY drop.id
hello_1489, возможно вместо
WHERE drop.name='name'
Вам подойдёт
WHERE drop.name like 'name%'
Вместо name введите имя вашего предмета.
Если нужно выводить только первые 20, то попробуйте такой вариант
SELECT top 20 drop.id, drop.name, MIN(drop_sell.price) AS min_price, MAX(drop_buy.price) AS max_price
И секцию group by вот так напишите:
group by drop.id, drop.name