2016-07-26 71 views
0

我开发活动网站,之后创建活动,该网站给出的事件网址的用户像这样如何让MySQL中的所有行只有两个表中的同一列值

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

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

回答

0

通过加入这样的查询

select * from commentTable inner join eventTable on commentTable.e_id=eventTable.id where commentTable.e_id=111111111 
0
SELECT * FROM commentTable WHERE e_id = event_id 

event_id是事件id参数,在你的榜样6997287a21a94875a1d827f9e2790a6c

0

这是一个WHERE条款的简单查询。

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

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

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

6997287a21a94875a1d827f9e2790a6c”

0

$ EVENTID = $ _GET [ 'H']; 从eventTable中选择e.id,e.title,e.date,c.name,c.comment作为e,commentTable作为c,其中e.id = c.e_id和e.id = $ eventId;

1

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

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

查找更多关于SQL JOIN

+0

不需要在这里使用连接。因为这里我们不需要两个表中的数据。如果在cooment表中有一个叫做6997287a21a94875a1d827f9e2790a6c6997287a21a94875a1d827f9e2790a6c的事件ID,那么这个id也应该在事件表中。 –

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); 
+0

其工作,非常感谢你Jees K Denny – Tuang

+0

Hokie。 ;)你可以像这样选择每个值'echo $ row ['comment']; ' –

1

事件ID是在URL中可见。这意味着,您正在使用GET方法。您已将事件ID绑定为“h”。因此,我们可以按以下方式加载相关活动的评论。

SELECT comments FROM commentTable WHERE e_id=$_GET['h']; 
相关问题