我已经在这里问Query Logic SQL并且没有得到回复(可能是我的数据的呈现)我真的希望有人可以看看这个并提供他们如何获得的输入这样做了。非常感谢任何帮助。
我有一个类似于
的sql表数据用户表
id | name |
_______________
1 | John |
2 | Mary |
3 | Charles |
4 | Mike |
5 | Lucy |
6 | Debbie |
配对表:
main_id | pair_id |
_____________________
1 | 2 |
1 | 3 |
2 | 4 |
2 | 5 |
3 | 6 |
3 | 1 |
将输出呈现给用户时,我的html表看起来像这样,在sql中使用group_by groupconcat。
main_name | paired_names
John | Mary, Charles
Mary | Mike, Lucy
Charles | Debbie, John
现在,问题出在搜索(通配符搜索)
期间说用户将输入" Charles" ...
输出必须是:
main_name | paired_names
John | Mary, Charles
Charles | Debbie, John
因为它将在配对表的两列中进行通配符搜索。
现在,我所做的是操纵数据库中的结果集,但是这已经分页,并且如果我查询所有数据然后进行操作,则会建议它会影响系统性能。
我希望有人能够就如何完成这项工作提供建议。
如果需要,我可以提供更多详细信息。
期待收到你的来信。
答案 0 :(得分:0)
检查fiddle
SELECT users.id,GROUP_CONCAT(pair_id) FROM (SELECT users.id,
users.name,pairing.main_id,pairing.pair_id
FROM users, pairing
WHERE pairing.main_id=users.id
) AS t1 JOIN users ON users.id=t1.id GROUP BY users.id;