php mysql查询重复,php – MySQL查询 – 连接两个表,产生重复的结果

在PHP中执行的MySQL查询导致了重复记录的返回。查询涉及到`challenges`和`verifications`两个表,根据用户ID和验证状态筛选未验证且处于进行中或待处理状态的挑战。问题可能源于表间连接条件。表结构包括挑战表的赌注、类型、开始日期等字段,以及验证表的挑战ID、用户验证状态等字段。寻求解决方案。
摘要由CSDN通过智能技术生成

我在

PHP中运行以下MySQL查询.

"SELECT *

FROM `challenges`,`verifications`

WHERE (`challenges`.`user_id`='".$this->record['id']."' OR `challenges`.`opponent_id`='".$this->record['id']."')

AND `challenges`.`is_verified`='0'

AND (`challenges`.`status`='in-progress' OR `challenges`.`status`='pending')

AND

(

(`verifications`.`user_id`='".$this->record['id']."' OR `verifications`.`opponent_id`='".$this->record['id']."')

AND (`verifications`.`user_verified`!=NULL AND `verifications`.`opponent_verified`=NULL)

)

LIMIT 100";

此查询由于某种原因返回重复记录.如果有人有任何见解,我将非常感激.

以下是两个表(挑战和验证)的结构:

挑战表:

CREATE TABLE `challenges` (

`id` int(11) NOT NULL auto_increment,

`wager` int(11) NOT NULL,

`type` varchar(255) NOT NULL,

`user_id` int(11) NOT NULL,

`opponent_id` int(11) NOT NULL,

`start_date` date NOT NULL,

`date_created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

`start_time` time NOT NULL,

`is_verified` tinyint(1) NOT NULL default '0',

`status` varchar(255) NOT NULL default 'pending',

`winner_id` int(11) default NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

验证表:

CREATE TABLE `verify` (

`id` int(11) NOT NULL auto_increment,

`user_id` int(11) NOT NULL,

`opponent_id` int(11) NOT NULL,

`challenge_id` int(11) NOT NULL,

`user_verified` int(11) default NULL,

`opponent_verified` int(11) default NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `challenge_id` (`challenge_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

感谢您的帮助,如果您需要更多信息,请告诉我们.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值