2012-04-05 27 views
0

2つのテーブルのデータをmysql結合で結合しようとしましたが、好きなように見えます。MySqlクエリは2つのテーブルの結果を結合します

テーブル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 

私は、誰かがこの1で私を助けることができると思います。

敬具、 ニック

+0

使用すると、1つのテーブルからのみ –

答えて

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

おかげで結果を取得しているので、これは)= yesの作品私は、クエリを使用しているので..私は、これをBarsMediaの表記を使用Sphinxの設定ファイルでは、クエリキーにブレーク '/'しか使用できません。 – directory

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で

だけのリストに必要なフィールド:

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 
関連する問題