我有两张桌子:
具有以下属性
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
我必须加入此表并创建一个具有广告系列明智用户的数组
例如,对于ID为1的广告系列,它应该给我
274,275
如何在Mysql中实现这一目标
由于
答案 0 :(得分:3)
您应该定义规范化数据。例如,考虑这种规范化,几乎不会改变您的数据库结构:
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