现在有主表A,附表B,AB关系为1对N。现在如何查询,能返回主表记录和附表记录和第一条或者最后一条记录。select a.* from aleft join b on b.a_id = a.id;group by b.a_id;
解决方案 »
- MYSQL limit里加算法的问题
- 请问数据库怎么建立多对多关系(最好以mysql为例)
- mysql 语句实现排序
- 求一高效的sql语句
- 为什么MySQL的timestamp类型的字段,默认为CURRENT_TIMESTAMP的,会比实际服务器时间少8个小时啊
- MyISAM表类型的最大容量是多少?系统是linux,ext3
- 〖超级新手问题〗安装MySQL到最后配置出错?
- linux下面的mysql安装问题,急,各位救急,在线等。
- 有没有办法让Mysql不持外键、视图、存储过程、触发器、子选择???
- php执行mysql语句,数字为什么也按字符串算录入
- 请问:MySQL哪个版本支持表分区,又能稳定运行?
- help!!!用mysql建立工厂物资管理数据库、、、
-- ----------------------------
-- Table structure for `a`
-- ----------------------------
DROP TABLE IF EXISTS `a`;
CREATE TABLE `a` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;-- ----------------------------
-- Records of a
-- ----------------------------
INSERT INTO `a` VALUES ('1', 'admin');
INSERT INTO `a` VALUES ('2', 'guest');
INSERT INTO `a` VALUES ('3', 'demo');-- ----------------------------
-- Table structure for `b`
-- ----------------------------
DROP TABLE IF EXISTS `b`;
CREATE TABLE `b` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a_id` int(11) NOT NULL,
`action` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;-- ----------------------------
-- Records of b
-- ----------------------------
INSERT INTO `b` VALUES ('1', '1', 'login');
INSERT INTO `b` VALUES ('2', '1', 'insert');
INSERT INTO `b` VALUES ('3', '1', 'delete');
INSERT INTO `b` VALUES ('4', '3', 'auth');
SELECT * FROM b b1 LEFT JOIN a b2 ON b1.a_id=b2.id
WHERE NOT EXISTS(SELECT 1 FROM b WHERE b1.a_id=a_id AND b1.id<id) AND b2.username='admin'
2 guest
3 demo 4 3 auth
WHERE NOT EXISTS(SELECT 1 FROM b WHERE b1.a_id=a_id AND b1.id>id)