Задать вопрос
murad1986
@murad1986
MySQL, Startups, internet-marketing

Как присвоить переменной результат запроса вида SELECT?

Здравствуйте. Только вникаю в mysql, возникла проблема.
Есть три таблицы, по которым надо сделать сложный запрос. Примерно так:

DELIMITER $$
CREATE PROCEDURE `calc` (int dealer int)
BEGIN
        select * from operations
	where operations.point_id in
	(select 'id' FROM points
	where 'points.id_parent' in (
		select id from dealers
		where dealers.id = dealer or dealers.id_parent = dealer));
END


Данный запрос не возвращает ничего. если я уберу первый select, то возвращается массив points.id, но по ним не могу данные по таблице operations.
Подскажите как быть? Может сделать путем разбивки на подфункции с присвоением переменой результата одного запроса а потом по ним считать остальное?
  • Вопрос задан
  • 895 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для начала - имена таблиц и колонок взяты не в те кавычки. Ну и вместо таких запросов используйте JOIN.
SELECT * 
    FROM `operations` AS `o`
    JOIN `points` AS `p` ON `o`.`point_id` = `p`.`id`
    JOIN `dealers` AS `d` ON `d`.`id` = `p`.`id_parent`
    WHERE `d`.`id` = :dealer 
       OR `d`.`id_parent` = :dealer
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы