2009-07-24 7 views
4

私はcodeigniterを使用しており、2つの異なるテーブルからデータを取得する必要があります。今のところ、それはworks_imageテーブルからのみデータを返します。どのようにして2つのテーブルからデータを取得できますか?JOIN SQLを使用して2つの異なるテーブルからデータを取得しています。 Codeigniter

ありがとうございます!

 
$this->db->select('works_image.*', 'works.*'); 
$this->db->from('works_image', 'works'); 
$this->db->join('works', 'works.id = works_image.id_work'); 
$result = $this->db->get(); 

foreach ($result->result() as $row) { 
    echo " # " . $row->id . " - " . $row->thumb . " - " . $row->wname . "
"; }
+0

あなたの結果を得ることを考えるコード

$this->db->select('works_image.*', 'works.*'); $this->db->from('works_image'); $this->db->join('works', 'works.id = works_image.id_work'); $result = $this->db->get(); foreach ($result->result() as $row) { echo " # " . $row->id . " - " . $row->thumb . " - " . $row->wname . " "; } 

下回る書き込みにする必要があります: https://stackoverflow.com/questions/6024800/codeigniter- table-join –

答えて

1

この投稿は、あなたの質問に答える必要があります。このこと

$this->db->select('works_image.*, works.*'); 

注:要するにhttp://www.whypad.com/posts/codeigniter-activerecord-join-tip/178/

を、あなたはこれに

$this->db->select('works_image.*', 'works.*'); 

からSELECT文を書き直す必要がありますGoogleの「CodeIgniter join」の最初の結果でした。まずあなたの質問をGoogleで検索してみてください。

+0

私は実際にGoogleで何時間も何時間も検索しました:/簡単な解決策を見つけるために、私はそれに気づくことができませんでした。それは素晴らしい今働いている!ありがとう! :) –

4

SELECT *Why is this a bad idea?)を実行している限り、select()を呼び出してテーブルを指定する必要はありません。デフォルトではすべてのフィールドが選択されます。

$this->db->from('works_image', 'works'); 
$this->db->join('works', 'works.id = works_image.id_work'); 
$result = $this->db->get(); 

正常に動作するはずです。

代わりに、あなたが必要とするフィールドを正確に指定されているもの、あなたが本当にやるべきこと、:

$this->db->select('works_image.id, works_image.name, works_image.id_work, works.id, works.name'); // (or whichever fields you're interested in) 
$this->db->from('works_image', 'works'); 
$this->db->join('works', 'works.id = works_image.id_work'); 
$result = $this->db->get(); 

あなたが(a)は、あなたのDBからの不要なデータを引っ張っていないことを確認することができますこの方法では、と(b)DBスキーマを変更したときにコードが破損することはありません。

+0

アドバイスありがとう:)私は既に使用しています。彼らは大きなテーブルではありません。あなたはテーブルがどれほど小さいかに関わらず、私は必要なフィールドを正確に指定しなければならないと思いますか? –

+0

必要なフィールドを正確に指定するには、テーブルのサイズに関係なく、常に良いアイデアです。 – pix0r

0

あなたは多分この記事はあなたを助ける、私はあなたが

関連する問題