我在使用以下sql时遇到了一些麻烦......
第一步是:
从表中获取一行,从另一个表中连接多行......结果数组应如下所示:
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编辑
以上查询不是实际查询,只是重写了我。
我使用codeigniter作为框架,因此查询是由codeigniter类构建的......查询的代码如下:
(似乎whereign,join等的位置对于codeigniters db class并不重要)
$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();
答案 0 :(得分:0)
.
之后您遗漏了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
答案 1 :(得分: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