使用多个条目MySQL和PHP选择一次值
用户可以创建允许其他用户注册的表单。因此,如果用户创建表单,他也可以在该表单上注册 假设我有以下表格使用多个条目MySQL和PHP选择一次值,php,mysql,select,Php,Mysql,Select,用户可以创建允许其他用户注册的表单。因此,如果用户创建表单,他也可以在该表单上注册 假设我有以下表格 //Form id | title | entry | userid 1 test entry for form 1 //form_register - Allows users to register for a particular form, form_id references form.id form_id | userid
//Form
id | title | entry | userid
1 test entry for form 1
//form_register - Allows users to register for a particular form, form_id references form.id
form_id | userid
1 1
1 1
1 2
1 2
现在,假设我想为用户创建并注册的表单生成一个列表。用户可以多次注册同一表单,但我只想显示该表单一次。我不想要用户每次注册的列表,只想要他们注册的表单列表,而不是实际注册的列表
如果用户创建一个表单,然后注册该表单2次我只希望表单信息显示1次。我当前的查询将表单信息显示3次(一次用于创建,两次用于注册)。
SELECT form.*, form_register.* FROM forms
INNER JOIN form_register on form_regiseter.form_id = form.id
WHERE form_register.userid = '$userid'
当为用户1运行此查询时,将生成以下内容
Title
test
test
test
我只想让它像这样显示表单一次
Title
test
对于userid2,这将是输出
Title
test
test
我希望是这样
Title
test
使用
DISTINCT
或groupby
获取唯一行
或者,您也可以通过应用唯一
-索引来禁止表单注册
表中的重复条目。您可以将INSERT
查询重写为REPLACE
查询,您将永远不会得到重复的行
REPLACE
将插入一行(如果该行不存在),或替换它(基于主键)
SELECT DISTINCT form.*, form_register.* FROM forms
INNER JOIN form_register on form_regiseter.form_id = form.id
WHERE form_register.userid = '$userid'
可能就是你要找的你没有存储一个“类型”字段来指定他们是注册还是创建?太好了,就是这样。谢谢,时间一过我就接受。对不起,我应该说得更清楚一点。用户可以多次注册表单。这有点像登录/退出类型的系统,所以除了日期之外,还需要复制。