只要有1票,我就可以正常工作(我是一个相对较新的编码员)。如何让其他用户投票?下面的代码:。
SELECT
b.id,
b.image_1_file,
b.your_name,
b.your_votes,
b.image_2_file,
b.battling_with_name,
b.battling_with_votes
FROM
battles b left outer join
votes v
on
b.id = v.battle_id
where
v.battle_id is null
order by
rand()
limit 1
我尝试:
SELECT
b.id,
b.image_1_file,
b.your_name,
b.your_votes,
b.image_2_file,
b.battling_with_name,
b.battling_with_votes
FROM
battles b
WHERE
b.id NOT IN (
SELECT
v.battle_id
FROM
votes v
WHERE
v.voters_id != '$myid'
)
order by
rand()
当然,后者只会寻找b.id
其他用户有一个id变量:$my_id
我不希望成员投票后再次看到该图像。
非常感谢您的帮助,祝您生活愉快!
我的表结构是:
我要投票的图像表:
id int(10) unsigned NO PRI auto_increment
image_1_file varchar(40) NO
image_2_file varchar(40) NO
your_name varchar(50) NO
your_votes int(10) NO 0
battlingwithname varchar(15) NO
battlingwithvotes int(10) NO 0
我的投票(已存储投票)表:
id int(10) unsigned NO PRI auto_increment
battle_id int(10) unsigned NO
vote_type tinyint(1) unsigned NO
voters_id varchar(30)
答案 0 :(得分:0)
只需使用not in
运算符,您就不会忽略那些已经投票的投影ID,因此您必须使用not in
来选择那些投票的ID并从投影中删除,请注意:另一个运算符存在也可以使用,但我不在查询中使用
SELECT
b.id,
b.image_1_file,
b.your_name,
b.your_votes,
b.image_2_file,
b.battling_with_name,
b.battling_with_votes
FROM
battles b
where b.id not in( select v.battle_id from votes v)