Mysql 联合查询 主表和详细表查询方案

原创 wintop  2024-02-02 17:41:12  阅读 2961 次 评论 0 条
摘要:

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`)

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;

上面是比较直观的方案,但是数据查询出来后需要进行解析。

image.png

SELECT aindex.id, aindex.name, adetail.did, adetail.aid, adetail.sn
FROM aindex
LEFT JOIN adetail ON aindex.id = adetail.aid;

image.png

上面是展示出来所有信息来,不合并,就是普通 join。

本文地址:http://zuoweng.com/post/219.html
版权声明:本文为原创文章,版权归 wintop 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?