Php 使用join with condition组合一列
你好,请帮助我,我被困在这里了 如果条件与这些条目相匹配,我需要获得这些id组合Php 使用join with condition组合一列,php,mysql,Php,Mysql,你好,请帮助我,我被困在这里了 如果条件与这些条目相匹配,我需要获得这些id组合 (3, '', 'Gi', 'Blue', 'Male', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35'), (4, '', 'Gi', 'Blue', 'Female', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35') 查询后我会得到结果 3
(3, '', 'Gi', 'Blue', 'Male', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35'),
(4, '', 'Gi', 'Blue', 'Female', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35')
查询后我会得到结果
3,4
但是第一排没有女性部分,我也想要
差不多
2
3,4
..
.
..
我有这样的桌子结构
CREATE TABLE IF NOT EXISTS `wp_divisions` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`division_type` varchar(20) NOT NULL,
`experience_level` varchar(20) NOT NULL,
`gender` varchar(10) NOT NULL,
`age_level` varchar(20) NOT NULL,
`weight_class` varchar(20) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `wp_divisions` (`ID`, `name`, `division_type`, `experience_level`, `gender`, `age_level`, `weight_class`, `created`, `modified`) VALUES
(2, '', 'Gi', 'Black', 'Male', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35'),
(3, '', 'Gi', 'Blue', 'Male', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35'),
(4, '', 'Gi', 'Blue', 'Female', 'Adult', 'Absolute', '2016-02-09 14:45:35', '2016-02-09 14:45:35')
所以我做这个查询
SELECT IF( (
t1.ID = t2.ID
), t1.ID , CONCAT_WS( ',', t1.ID, t2.ID ) ) AS DVID
FROM wp_divisions AS t1
JOIN wp_divisions AS t2
ON (t1.division_type = t2.division_type
AND t1.experience_level = t2.experience_level
AND t1.age_level = t2.age_level
AND t1.weight_class = t2.weight_class
AND t1.ID != t2.ID)
GROUP BY DVID
我想你可能想这么做
SELECT GROUP_CONCAT(ID) as DVID,
division_type,
experience_level,
age_level,
weight_class
FROM wp_divisions
GROUP BY division_type,
experience_level,
age_level,
weight_class
您是否需要csv格式的输出?您是否试图直接从SQL查询中手动构建JSON字符串?
name
字段是否始终为空?@TimBiegeleisen否我只想以组合形式获取这些值如果发现男女部分不可用,则第一行的单个值不可用女性数据,因此itt将显示2,然后第二行3,4,因为有男性女性section@TimBiegeleisen姓名是一个我忘记删除的额外字段,所以请忽略它。非常感谢,我想我必须了解更多。你写了一个非常简单的查询。是的,小组讨论很神奇,如果你喜欢,你也可以添加一个小组讨论(性别)。我会再次感谢你的帮助。你再次让我开心起来,谢谢你