我认为从根本上说,我不明白如何完成连接2个表使用相关的表在一起,我需要帮助.
- I have one table called '表单选项列表' it has 3 columns (id, name, active)
- A relate table called '表单选项列表表单选项relates' it has 3 columns(id, 表单选项列表_id, 表单选项_id)
- and finally a '表单选项' table that has 3 columns (id, name, value)
表值大致表示如下:
表单选项列表
id | name | active
---------------------
1 | statuses | 1
表单选项列表表单选项relates
id | 表单选项列表_id | 表单选项_id
------------------------------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
表单选项
id | name | value
------------------------------------
1 | Successfully Purchased | success
2 | Shipping Error | shipping_error
3 | Failed Payment | failed_payment
我正在try 构建的是一个查询中的以下内容.
[{name: statues,
options:[
{name: 'Successfully Purchased', value: 'success'},
{name: 'Shipping Error, value: 'shipping_error'},
{name: 'Failed Payment', value: 'failed_payment'}
]
}]
我用php和pdo查询MySQL
我所能做的是生成如下内容:
[{"options":"1,2,3,"}]
使用下面的测试查询(此时我只是试图理解SQL,没有必要 comments 我没有使用占位符等.
$this->db->select(
'GROUP_CONCAT(DISTINCT 表单选项_id) as options'.self::from.self::表单选项列表表单选项relates
.self::leftJoin.self::表单选项
.self::on
.self::表单选项列表表单选项relates.'.表单选项_id'
.self::equals.self::表单选项列表表单选项relates.'.表单选项_id'
.self::where.'表单选项列表_id = 1'
.' GROUP BY 表单选项列表_id'
);
上面打印的内容如下:
SELECT GROUP_CONCAT(DISTINCT 表单选项_id) as options
FROM 表单选项列表表单选项relates
LEFT JOIN _表单选项 ON 表单选项列表表单选项relates.表单选项_id = 表单选项列表表单选项relates.表单选项_id
WHERE 表单选项列表_id = 1
GROUP BY 表单选项列表_id
我知道,从根本上说,我试图实现的目标是可能的.但我不确定怎么go 那里.如有任何帮助,我们不胜感激.