mysql 多表联合查询示例:
表aindex 为主表:
CREATE TABLE `aindex` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` char(20) COLLATE UTF8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
表 adetail 为详细信息表
CREATE TABLE `adetail` (
`did` int(11) NOT NULL,
`aid` int(11) DEFAULT NULL,
`sn` char(30) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`did`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
需要查询aindex 将所有信息取出来。
SELECT aindex.id, aindex.name, GROUP_CONCAT(adetail.did) AS dids, GROUP_CONCAT(adetail.sn) AS sns FROM aindex LEFT JOIN adetail ON aindex.id = adetail.aid GROUP BY aindex.id;
上面是比较直观的方案,但是数据查询出来后需要进行解析。
SELECT aindex.id, aindex.name, adetail.did, adetail.aid, adetail.sn FROM aindex LEFT JOIN adetail ON aindex.id = adetail.aid;
上面是展示出来所有信息来,不合并,就是普通 join。
添加新评论