2015-04-30 102 views
0

我困在一段不太明白的代碼中。 我有不同的名稱,但相同的字段數表,但表是獨立 類似的東西:SELECT Multiple Tables

table1的

  • ID
  • 用戶
  • 標題

表2

  • ID
  • 用戶
  • 標題

我需要從兩個表中相同的查詢數據得到,但我失敗了,我嘗試用INNER JOIN,UNION ALL,但不知道,它被誤用。 現在我有這樣的:

$mysites = $db->QueryFetchArrayAll(" 
select * 
FROM table1,table2 
where table1.user = table2.user AND 
table1.user = 1"); 

foreach($mysites as $mysite){ 
echo $QUERY['title']; 
} 

但回到這樣:

title1.table1

title2.table1

,我喜歡這樣:

TITLE1 .table1

title2.table1

title1.table2

title2.table2

問候和感謝

+0

你嘗試過'選擇表1 *,表2 *'。? –

+0

什麼是$ mysites和$ QUERY?他們是否定義?請注意,案例與PHP變量有關。你在用什麼課? – halfer

+0

嗨,感謝您的評論,我試過這個(選擇table1。*,table2。*),但它給出了相同的結果。 我已更正變量$ mysites 有沒有更多的想法? – Esweb

回答

1

您可以使用關鍵字UNION這樣的:

SELECT * FROM table1 UNION SELECT * FROM table2 

該查詢將從table1選擇一切,其結果與那些從table2合併。請注意,您必須從兩個表格中選擇相同數量的列。此外,列名和數據類型將根據第一個表分配。

如果您想保留重複添加關鍵字ALL

SELECT * FROM table1 UNION ALL SELECT * FROM table2 
0

的問題是非常不清楚.....

是ID是的每個用戶在每個表中都一樣?如果是這樣的INNERJOIN將有助於

SELECT t1.*, t2.* 

FROM table1.t1 

INNER JOIN table2.t2 

ON t1.id = t2.id 

WHERE t1.user = "1" 

(更換INNER JOIN到LEFT JOIN如果數據可能會丟失)

如果不是的話,爲什麼不把數據從一個表到另一個,並且只有一張包含所有數據的表格?

+0

這不會返回任何值... 每個表處理大量的數據,需要將它們分成2個不同的表。 感謝您的回答 – Esweb