繁体   English   中英

使用多个条目MySQL和PHP选择一次值

[英]Selecting value once with multiple entries MySQL and PHP

用户可以创建允许其他用户注册的表单。 因此,如果用户创建表单,他也可以在所述表单上注册。

说我有以下表格

//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次(一次用于创建,2次用于注册)。

    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

使用DISTINCTGROUP BY获取唯一行。

或者,您也可以通过应用UNIQUE -index禁止form_register表中的重复条目。 您可以将INSERT查询重写为REPLACE查询,并且永远不会获得重复的行。

如果它不存在, REPLACEINSERT一行,或者如果它存在则替换它(基于PRIMARY KEY )。

SELECT DISTINCT form.*, form_register.* FROM forms
    INNER JOIN form_register on form_regiseter.form_id = form.id
    WHERE form_register.userid = '$userid' 

可能就是你要找的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM