MySql查询组合了2个表的结果

时间:2012-04-05 10:31:18

标签: mysql join

我尝试通过mysql连接组合来自2个表的数据,但我看起来很喜欢,我根本没有从第二个表中收到结果。

表结构#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

我希望有人可以帮我这个。

亲切的问候, 尼克

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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作为您的字段。

答案 2 :(得分:1)

只需列出SELECT中的必填字段:

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