-1

次のSQLで少し問題があります...

最初のステップは次のとおりです。

テーブルから 1 つの行を取得し、別のテーブルから複数の行を結合します...結果の配列は次のようになります。

array(
  field_1, 
  field_2, 
  field_3, 
  joined_array(
    field_a_array(
      field_a_a, 
      field_a_b, 
      field_a_c
    ), 
    field_b_array(
      field_b_a, 
      field_b_b, 
      field_b_c
    )
  ) 
) 

私のクエリは次のようになります。

SELECT table_1.*, table_2.*
FROM table_1
JOIN table_2 ON table_2.field_1 = table_1.field_1
WHERE table_1.field_1 = xyz

しかし、「table_2」からは1行しか返されません...

それで、私は何を間違っていますか?

コメント#1のために編集:

上記のクエリは実際のクエリではなく、私が書き直したものです。

フレームワークとして codeigniter を使用しているため、クエリは codeigniter クラスによって作成されます...クエリのコードは次のとおりです。

(codeigniters db クラスでは where や join などの位置は重要ではないようです)

$this->db->select('events.*, genres_x_events.*');

$this->db->from('events');
$this->db->where('events.slug', $slug);
$this->db->where('events.deleted', 0);

$this->db->join('genres_x_events', 'genres_x_events.event_slug = events.slug');

$query = $this->db->get();
4

2 に答える 2

0

.afterがありませんtable_2。そして、あなたは条件の前にいるJOINべきです:WHERE

SELECT table_1.*, table_2.*
FROM table_1
JOIN table_2 ON table_2.field_1 = table_1.field_1
WHERE table_1.field_1 = xyz
于 2012-08-10T13:28:32.260 に答える
0

ドットが欠けているようです:

「table_2*」と書かれているところに、ドットを追加しました。

SELECT table_1.*, table_2.*
FROM table_1
JOIN table_2 ON table_2.field_1 = table_1.field_1
WHERE table_1.field_1 = xyz
于 2012-08-10T13:28:36.837 に答える