我有两个 MySQL 表
- 具有结构 id(int)、master(varchar)、services(varchar) 的 master_table
1,“玛莎·彼得罗娃”,“1,2”
- services_table 结构
id(int), usluga(varchar) 1, 'One service' 2, 'Second service' 你需要在输出中获取这个类型的数组
Array
(
[0] => Array
(
[master_id] => 1
[services_id] => 1,2
[master] => Маша Петрова
[services] => Одна услуга,Вторая услуга
)
[1] => Array(...)
)
这样的请求是否正确,或者可以用其他方式编写吗?
SELECT m.id AS master_id, m.services, m.master, s.id, s.usluga AS usluga
FROM master_table m
LEFT JOIN services_table s ON s.id > 0
HAVING FIND_IN_SET(s.id, m.services) > 0
我是这样尝试的(代码只是一个例子,不要注意那里的值)
SELECT u.user_id, GROUP_CONCAT(DISTINCT c.category_name) AS category_names, u.category_id, c.category_id
FROM user u
INNER JOIN category c ON c.category_id > 0
WHERE u.user_id = $user_id
GROUP BY u.user_id
HAVING FIND_IN_SET(c.category_id, u.category_id) > 0
但我得到错误。关键不是这样的请求返回,而是这样的请求是否正确,如果不正确,我将非常感谢列出正确的请求))谢谢!