我尝试通过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
我希望有人可以帮我这个。
亲切的问候, 尼克
答案 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