2014-04-01 45 views
0

我有2个表,我想通过php中的mysql_query选择。PHP,MYSQL - 加入2个表,其中1个表有多个主键的条目

  • table1的

列:特殊身份,姓名,信息,开始创建,byUser,ziparea

  • 表2

列:ID,ziparea,cusID,标题,联系人,邮件

$result = mysql_query("SELECT * FROM table1 JOIN table2 ON table1.ziparea = table2.ziparea WHERE table1.specialID='".$_REQUEST["specialID"]."'"); 
while($var = mysql_fetch_array($result)) { 
} 

table1从01到99每个ziparea只有1个条目。table2有多个zipareas条目。

这似乎会发生的问题是,结果似乎是这样的:

  • table1的数据---数据1 ----数据1 --- DATA1
  • ziparea ---- ---- -------- 24 24 -------- 24
  • table2的数据DATA1 --- ---- --- DATA2 DATA3

指table1的数据被复制。我想要的细胞是空的,因为如果我即在PHP请求table1.Name,

<?php echo utf8_encode($var["Name"]); ?> 

应该只给1个数据......现在它带有一个数据,我需要3份。

我怎样才能解决这个问题?

+0

在这个例子中,你甚至不需要第二个表:表1从选择 名where特殊身份= ... – Alfons

回答

0

尝试增加在GROUP BY到SQL查询,例如:

$result = mysql_query("SELECT table1.Name FROM table1 JOIN table2 ON table1.ziparea = table2.ziparea WHERE table1.specialID='".$_REQUEST["specialID"]."' GROUP BY table1.Name"); 
+0

选择* AINT要去工作然后,使用select table1.name;) – Alfons

+0

现在它不会给出多于一个来自table1的数据,但它也只为table2提供1个数据,其中我需要来自ziparea列的所有数据 – Roy

+0

这是真实的,已更新以反映正确的方法。没有喝过我的咖啡...... – ScottMcGready