MySql查询合并来自2个表的结果

问题描述:

我试图通过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

你的名字,你要选择的列。添加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

你可以做

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为您的领域。

只是列表选择所需的字段:

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