Reputation: 421
This is my SProcedure
DELIMITER $$
DROP PROCEDURE IF EXISTS `etracking`.`validarAcceso` $$
CREATE PROCEDURE `etracking`.`validarAcceso` (IN pusuario VARCHAR(30),IN ppassword VARCHAR(10))
BEGIN
DECLARE encontrado INT;
SET encontrado = 0;
IF encontrado = 0 THEN
SELECT usuarios_distribuidores.nombre, usuarios_distribuidores.apellido1,
usuarios_distribuidores.apellido2, distribuidores.nombre, count(encontrado) FROM
usuarios_distribuidores INNER JOIN distribuidores ON
distribuidores.iddistribuidor = usuarios_distribuidores.iddistribuidor
WHERE email = pusuario AND password = ppassword;
END IF;
IF encontrado = 0 THEN
SELECT * FROM usuarios_centro_acopio WHERE email = pusuario AND password = ppassword;
END IF;
IF encontrado = 0 THEN
SELECT * FROM usuarios_admin WHERE email = pusuario AND password = ppassword;
END IF;
END $$
DELIMITER ;
Upvotes: 0
Views: 1654
Reputation: 700422
Put the queries in the same condition, so that you can use union all
:
IF encontrado = 0 THEN
SELECT usuarios_distribuidores.nombre, usuarios_distribuidores.apellido1,
usuarios_distribuidores.apellido2, distribuidores.nombre, count(encontrado) FROM
usuarios_distribuidores INNER JOIN distribuidores ON
distribuidores.iddistribuidor = usuarios_distribuidores.iddistribuidor
WHERE email = pusuario AND password = ppassword;
UNION ALL
SELECT * FROM usuarios_centro_acopio WHERE email = pusuario AND password = ppassword;
UNION ALL
SELECT * FROM usuarios_admin WHERE email = pusuario AND password = ppassword;
END IF;
Upvotes: 1
Reputation: 24447
There are 2 options. You can use a union or a join. It depends on your structure.
SELECT * FROM usuarios_centro_acopio WHERE email = pusuario AND password = ppassword
UNION ALL
SELECT * FROM usuarios_admin WHERE email = pusuario AND password = ppassword;
or
SELECT * FROM usuarios_centro_acopio c, usuarios_admin a WHERE c.email = a.email and cpassword = a.password and email = pusuario AND password = ppassword
Upvotes: 0