在第一张表里取得  :authority列所对应的值  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
第二张表结构: id int 对应第一张表取到的值(varchar类型), name varchar(20)
现在要要写sql 得到所有name值  
用mysql实现,  求救

解决方案 »

  1.   

    贴建表及插入记录的SQL,及要求结果出来看看
    try:
    select * from b1 inner join b2 on find_in_set(id,authority)>0
      

  2.   

    mysql> use  test;
    Database changed
    mysql> create  table t1(authority   varchar(20));
    Query OK, 0 rows affected (0.42 sec)mysql> create  table t2( id int ,name varchar(20));
    Query OK, 0 rows affected (0.32 sec)mysql> insert  into t1 values(1),(2),(3);
    Query OK, 3 rows affected (0.31 sec)
    Records: 3  Duplicates: 0  Warnings: 0mysql> insert  into t2 values(1,"zhangsan"),(2,"lisi"),(3,"wangwu");
    Query OK, 3 rows affected (0.30 sec)
    Records: 3  Duplicates: 0  Warnings: 0mysql> select * from t2 where id in (select authority from t1);
    +------+----------+
    | id   | name     |
    +------+----------+
    |    1 | zhangsan |
    |    2 | lisi     |
    |    3 | wangwu   |
    +------+----------+
    3 rows in set (0.03 sec)子查询里面可以加where限制你需要的authprity,这里我只是做个演示,并没有加条件限制。
      

  3.   

    select *
    from 第二张表
    where id in (select authority from 第一张表)
      

  4.   

    贴建表及插入记录的SQL,及要求结果出来看看
    SELECT A.* FROM B1 A INNER JOIN B2 B ON A.ID=B.authority
      

  5.   

    select *
    from table2
    where id in (select authority from table1)
      

  6.   

    我需要把1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
     拆分对应第二张表的id列   然后取出name值
      

  7.   

    我需要把1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
     拆分对应第二张表的id列   然后取出name值
      

  8.   

    select *
    from table2
    where id in (select authority from table1)
    这个就可以的呀
      

  9.   

    要不我给你换个写法
    select * ,
    table2.name
    from table1 
    inner join table2
    on table2.id=table1.authority
      

  10.   

    /*
    SQLyog 企业版 - MySQL GUI v7.14 
    MySQL - 5.5.18 : Database - tramstation
    *********************************************************************
    */
    /*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`tramstation` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `tramstation`;/*Table structure for table `db_authority` */DROP TABLE IF EXISTS `db_authority`;CREATE TABLE `db_authority` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `Authority` varchar(100) DEFAULT NULL,
      `AuthorityAll` int(11) DEFAULT NULL,
      `optime` datetime DEFAULT NULL,
      `steta` varchar(50) DEFAULT NULL,
      `re` varchar(70) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;/*Data for the table `db_authority` */insert  into `db_authority`(`id`,`Authority`,`AuthorityAll`,`optime`,`steta`,`re`) values (1,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>添加编辑人员</a></li>',1,'2012-05-09 10:59:40','添加编辑人员',NULL),(2,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>删除编辑人员</a></li>',1,'2012-05-09 18:59:12','删除编辑人员',NULL),(3,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>修改编辑人员</a></li>',1,'2012-05-10 09:28:59','修改编辑人员',NULL),(4,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>查询编辑人员</a></li>',1,'2012-05-10 09:29:31','查询编辑人员',NULL),(5,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>编辑分组权限</a></li>',1,'2012-05-10 09:30:22','编辑分组权限',NULL),(6,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>人员分组</a></li>',1,'2012-05-10 09:30:23','人员分组',NULL),(7,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>添加电池组</a></li>',2,'2012-05-10 09:30:24','添加电池组',NULL),(8,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>删除电池组</a></li>',2,'2012-05-10 09:30:26','删除电池组',NULL),(9,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>修改电池组</a></li>',2,'2012-05-10 09:30:25','修改电池组',NULL),(10,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>查询电池组</a></li>',2,'2012-05-10 15:52:14','查询电池组',NULL),(11,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>添加电池</a></li>',3,'2012-05-10 15:59:07','添加电池',NULL),(12,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>删除电池</a></li>',3,'2012-05-10 15:59:08','删除电池',NULL),(13,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>修改电池</a></li>',3,'2012-05-10 15:59:09','修改电池',NULL),(14,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>查询电池</a></li>',3,'2012-05-10 15:59:11','查询电池',NULL),(15,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>添加充电卡</a></li>',4,'2012-05-10 16:01:47','添加充电卡',NULL),(16,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>删除充电卡</a></li>',4,'2012-05-10 16:01:48','删除充电卡',NULL),(17,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>修改充电卡</a></li>',4,'2012-05-10 16:01:49','修改充电卡',NULL),(18,'<li>&nbsp;&nbsp;&nbsp;<a href=\'#\' target=\'manFrame\'>查询充电卡</a></li>',4,'2012-05-10 16:01:51','查询充电卡',NULL);/*Table structure for table `db_authoritymodule` */DROP TABLE IF EXISTS `db_authoritymodule`;CREATE TABLE `db_authoritymodule` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `module` varchar(100) DEFAULT NULL,
      `state` varchar(100) DEFAULT NULL,
      `re` varchar(70) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `db_authoritymodule` */insert  into `db_authoritymodule`(`id`,`module`,`state`,`re`) values (1,'<a href=\'javascript:void(0)\' name=\'left_title\'>用户管理</a> ','管理模块',NULL),(2,'<a href=\'javascript:void(0)\' name=\'left_title\'>电池组管理</a> ','电池组管理',NULL),(3,'<a href=\'javascript:void(0)\' name=\'left_title\'>电池管理</a> ','电池管理',NULL),(4,'<a href=\'javascript:void(0)\' name=\'left_title\'>充电卡管理</a>  ','充电卡管理',NULL);/*Table structure for table `db_groupuser` */DROP TABLE IF EXISTS `db_groupuser`;CREATE TABLE `db_groupuser` (
      `GroupID` int(11) NOT NULL AUTO_INCREMENT,
      `GroupName` varchar(10) DEFAULT NULL,
      `AuthorityAll` varchar(20) DEFAULT NULL,
      `Authority` varchar(50) DEFAULT NULL,
      `GroupSort` int(11) DEFAULT NULL,
      `opdtime` datetime DEFAULT NULL,
      `re` varchar(70) DEFAULT NULL,
      PRIMARY KEY (`GroupID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `db_groupuser` */insert  into `db_groupuser`(`GroupID`,`GroupName`,`AuthorityAll`,`Authority`,`GroupSort`,`opdtime`,`re`) values (1,'管理员','1,2,3,4','1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18',1,'2012-05-09 10:55:18',NULL),(2,'电池组编辑人员','2','7,8,9,10',2,'2012-05-10 15:56:32',NULL),(3,'电池编辑人员','3','11,12,13,14',3,'2012-05-10 15:57:25',NULL),(4,'充电卡编辑人员','4','15,16,17,18',4,'2012-05-10 15:58:05',NULL);/*Table structure for table `db_usermanage` */DROP TABLE IF EXISTS `db_usermanage`;CREATE TABLE `db_usermanage` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `UserName` varchar(20) NOT NULL,
      `PassWord` varchar(20) NOT NULL,
      `Optime` datetime DEFAULT NULL,
      `OpIP` varchar(20) DEFAULT NULL,
      `GroupID` int(11) DEFAULT NULL,
      `Re` varchar(70) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;/*Data for the table `db_usermanage` */insert  into `db_usermanage`(`id`,`UserName`,`PassWord`,`Optime`,`OpIP`,`GroupID`,`Re`) values (1,'admin','admin','2012-05-09 11:07:42','127.0.0.1',1,NULL),(2,'root1','root','2012-05-10 13:25:45','127.0.0.1',2,NULL),(3,'root2','root','2012-05-10 16:21:39','127.0.0.1',3,NULL),(4,'root3','root','2012-05-10 16:22:34','127.0.0.1',4,NULL);/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
      

  11.   

    db_groupuser表 Authority列 对应的db_authority 表里面的Authority列值取出来
      

  12.   

    select * from db_groupuser a inner join db_authority b on find_in_set(b.id,a.authority)>0
    这个不行?要求什么结果?