고급 데이터베이스 쿼리가 필요한 투표 애플리케이션을 개발하려고합니다. 이 응용 프로그램은 사용자가 전화 번호를 사용하여 다른 사용자에게 투표하도록 허용합니다. 따라서 많은 전화 번호를 가진 사용자가 전체 투표 수를 합산하도록하십시오. 나는 전화 번호를 국가 ID 번호로 연결하는 테이블을 가지고 있습니다. |mysql 프로 시저/함수
user_national_id 테이블
user_phone_no : 결국 나는 그래서 두 개의 테이블이 national_id
-------------------- | -----------------
PHONE1 | nat_id1
phone2 | nat_id1
표 테이블
user_phone_no | 보낸 사람
-------------------- | -----------------
PHONE1 | 발신자에게
PHONE1 | sender2
phone2 | sender3
phone2 | sender2
이제는 user_national_id 테이블에서 고유 한 국가 ID 번호를 수집하고 user_national_id 테이블의 사용자 전화 번호에 국가 ID를 연결 한 다음 반환 된 전화 번호가 투표 테이블에 나타나는 횟수를 계산해야합니다.
미리 감사드립니다.
(의견에서 이동 함 ...)
DELIMITER $$
CREATE PROCEDURE GetUniqueNominees()
BEGIN DECLARE done BOOLEAN;
DECLARE nomIds VARCHAR(255);
DECLARE curIds CURSOR FOR
SELECT DISTINCT national_id
FROM user_national_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE;
OPEN curIds;
LOOPROWS: LOOP
IF done=TRUE THEN
CLOSE curIds;
LEAVE LOOPROWS;
END IF;
FETCH curIds
INTO nomIds;
SELECT DISTINCT nomIds;
select count(user_phone_no)
from votes
inner join user_national_id
ON (votes.user_phone_no = user_national_id.user_phone_no)
where national_id=nomIds;
END LOOP;
END$$
DELIMITER ;
@mmushtaq Sql에서 좋지는 않지만 분명히 작동하지 않는 조인을 시도했습니다. – user3783697
이것은 내가 지금까지 생각해 낸 것입니다. – user3783697
각 결과를 두 번 반환한다는 것은 어떤 것입니까 – user3783697