2012-04-05 77 views
0

我試圖通過mysql連接合並來自2個表的數據,但我看起來很喜歡,我根本沒有收到來自第二個表的結果。MySql查詢合併來自2個表的結果

Table structre#1(site_hosters);

+------------+--------------+--------+ 
| host_id | name   | prio | 
+------------+--------------+--------+ 
| 1   | site.com  | 0  | 
+------------+--------------+--------+ 

表結構#2(site_date);

+------------+--------------+--------+ 
| id   | hoster  | page | 
+------------+--------------+--------+ 
| 1   | site.com  | http:..| 
+------------+--------------+--------+ 

我試圖得到的結果是'id,host_id,name,.... etc';

當我嘗試下面的查詢時,它不會在查詢結果中使用host_id和prio。 看起來,連接完全沒有任何影響,查詢它。

我的查詢:

SELECT 
     site.id, 
     site.hoster, 
     site.page, 

FROM site_data as site 

INNER JOIN site_hosters hoster 
ON site.hoster = hoster.name 

我希望有人能幫助我這一個。

親切的問候, 尼克

+0

,因爲你是從一個表中讀取結果只 – 2012-04-05 10:48:58

回答

2

你的名字,你要選擇的列。添加site_hosters列這樣的:

SELECT 
    site.id, 
    site.hoster, 
    site.page, 
    hoster.host_id, 
    hoster.prio 
FROM site_data as site 
INNER JOIN site_hosters hoster ON site.hoster = hoster.name 
+0

謝謝,這個作品是=)..我用BarsMedia的符號,這是因爲我在查詢中使用一個Sphinx配置文件,你只能在查詢鍵上使用'/'。 – directory 2012-04-05 11:30:33

1

你可以做

SELECT 
      site.*, 
      hoster.* 
FROM site_data as site 
INNER JOIN site_hosters hoster ON site.hoster = hoster.name 

這將返回所有領域,然而,你可能只需要像

site.id, ste.hoster, site.page, hoster.prio爲您的領域。

1

只是列表選擇所需的字段:

SELECT site.id, hoster.host_id, hoster.name, site.hoster, site.page 
FROM site_data AS site 
INNER JOIN site_hosters AS hoster ON site.hoster = hoster.name