2014-04-01 44 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