我有两张桌子:
具有以下属性的
id , campaign ,user_group例如:
1 8867116213 5,11,15,16,18,20
2 8867116214 0,8,22然后我有另一个表,名为User table
具有以下属性
id emp_id user_group例子是这样的
1 274 0,5,8,9,10,11,21,20
2 275 5,11,20
3 279 19,21,22,25我必须加入这个表并创建一个具有活动智能用户的Array
例如,对于id 1的活动,它应该给我
274,275
我如何在Mysql中实现这一点?
谢谢
发布于 2016-10-16 19:12:36
你应该明确地标准化你的数据。例如,考虑这种规范化,它使您的DB结构几乎不发生任何更改:
INSERT INTO CampaignTable
(`campaign`, `user_group`)
VALUES
(8867116213, 5),
(8867116213, 11),
(8867116213, 15),
(8867116213, 16),
(8867116213, 18),
(8867116213, 20),
(8867116214, 0),
(8867116214, 8),
(8867116214, 22)
;
INSERT INTO UserTable
(`emp_id`, `user_group`)
VALUES
(274, 0),
(274, 5),
(274, 8),
(274, 9),
(274, 10),
(274, 11),
(274, 21),
(274, 20),
(275, 5),
(275, 11),
(275, 20),
(279, 19),
(279, 21),
(279, 22),
(279, 25)
;然后,可以使用这样简单的查询来获取数据:
SELECT c.campaign, GROUP_CONCAT(DISTINCT u.emp_id) FROM CampaignTable c
JOIN UserTable u ON c.user_group = u.user_group
GROUP BY c.campaign请参阅SQLFiddle
https://stackoverflow.com/questions/40074150
复制相似问题