1

訪問者が投票すると、情報を保存しますanswer_idipなど

私のウェブサイトの訪問者は、複数の投票で投票します。

たとえば ( answer_id (767) ) などに投票した訪問者が、他に何に投票したかを知りたいです。ipに基づく。answer_id=767 としましょう

表: poll_stat

`id` int(11) NOT NULL auto_increment,
`question_id` int(11) NOT NULL,
`answer_id` int(11) NOT NULL,
`ip` varchar(255) NOT NULL,
`date` date NOT NULL,
`country` text NOT NULL,
`time` int(11) NOT NULL,
`age` int(11) NOT NULL,
4

1 に答える 1

1

これでうまくいくと思います。

select ip, question_id
from poll_stat
where ip in (select ip from poll_stat where answer_id = 767 group by ip)
and answer_id <> 767

編集

うーん... INDEXip 列に作成されていることを確認できます。そうでない場合は、IN 句が気に入らない可能性があります。私は結合として書き直します:

select ip, question_id
from poll_stat ps1
inner join (select ip from poll_stat where answer_id = 767 group by ip) ps2
on ps1.ip = ps2.ip
where answer_id <> 767
于 2012-09-02T00:20:32.437 に答える