私は高度なデータベースクエリを必要とする投票アプリケーションを開発しようとしています。このアプリケーションでは、ユーザーは電話番号を使用して他のユーザーに投票することができます。だから、多くの電話番号を持つユーザーがすべての投票を集計するようにしてください。自分の国のID番号を使用して電話番号を関連付けるテーブルがあります。 |mysql手続き/関数
user_national_idテーブル
user_phone_no:最後に、私はように2つのテーブルを持っていますnational_id
-------------------- | -----------------
のphone1 | nat_id1
phone2の | nat_id1
票テーブル
user_phone_no |送信者
-------------------- | -----------------
のphone1 | sender1
の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
が出ている問題は、それがで 'national_id'でどのテーブル倍 – user3783697