如何在mysql中获取所有行只有两个表中的相同列值

时间:2016-07-26 11:35:24

标签: php mysql

我正在开发活动网站,在创建活动之后,网站会像这样向用户提供活动网址

www.event.com/?h=6997287a21a94875a1d827f9e2790a6c
6997287a21a94875a1d827f9e2790a6c

此参数在eventTable中记录为id(主键)。我的问题是我创建了一个评论框,所有评论都是在commentTable上记录的,它有e_id列,该值与eventTable中的id相同。当事件id与commentTable中的e_id相同时,如何从commentTable获取所有注释; enter image description here

8 个答案:

答案 0 :(得分:1)

SQL提供JOIN子句,根据它们之间的公共字段组合来自两个或多个表的行。在这里你可以使用以下查询:

SELECT * FROM eventTable join  commentTable on commentTable.e_id=eventTable.id where commentTable.e_id=6997287a21a94875a1d827f9e2790a6c6997287a21a94875a1d827f9e2790a6c

详细了解SQL JOIN

答案 1 :(得分:1)

事件ID在网址中可见。这意味着,您正在使用GET方法。您将事件ID绑定到url为" h"。因此,我们可以加载相关事件的注释,如下所示。

SELECT comments FROM commentTable WHERE e_id=$_GET['h'];

答案 2 :(得分:0)

通过像这样的连接查询

select * from commentTable inner join  eventTable on commentTable.e_id=eventTable.id where commentTable.e_id=111111111

答案 3 :(得分:0)

SELECT * FROM commentTable WHERE e_id = event_id

event_id是事件ID参数,在您的示例中为6997287a21a94875a1d827f9e2790a6c

答案 4 :(得分:0)

这是一个带有WHERE子句的简单查询。

SELECT name, comment FROM commentTable WHERE e_id = 6997287a21a94875a1d827f9e2790a6c
6997287a21a94875a1d827f9e2790a6c

答案 5 :(得分:0)

只是select语句中的where子句非常简单。

select name, comment from commentTable where e_id= '6997287a21a94875a1d827f9e2790a6c

6997287a21a94875a1d827f9e2790a6c'

答案 6 :(得分:0)

选择两个表中的所有行,只要列之间匹配并检查您从$_GET

收到的事件ID
$eventId = $_GET['h'];

select e.id, e.title, e.date, c.name, c.comment from eventTable as e, commentTable as c where e.id = c.e_id and e.id = $eventId;

答案 7 :(得分:0)

然后执行以下代码,

$event_id=$_GET['h'];
$sql="SELECT * FROM commentTable WHERE e_id ='$event_id'";
$result=mysql_query($sql) or die("Query Failed".mysql_error());
$row =mysql_fetch_array($result);
print_r($row);