mysql里查询时怎么把一张表里的上级ID显示为上级名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql里查询时怎么把一张表里的上级ID显示为上级名称?相关的知识,希望对你有一定的参考价值。

表结构:
create table t_dept(
deptid integer primary key,--部门ID
sjid integer, --上级部门ID
deptname varchar(200)
);

参考技术A select t1.*,t2.deptname as 新的名字
from t_dept t1 left join t_dept t2 on t1.sjid=t2.deptid

这样写比较靠谱。不能直接显示

本回答被提问者和网友采纳
参考技术B select a.deptname ,b.deptanme sjdeptname from t_dept a left join t_dept b on (a.sjid=b.deptid)

参考技术C 用 左连接

在mysql中怎样显示表里的内容

我是在cmd里面查询,想问是什么具体的查询语句啊

第一步:

我们打开mysql命令行编辑器。

第二步:

我们输入密码,登录Mysql数据库。

第三步:

我们先显示数据库,选择一个我们要创建表的数据库。

第四步:

我们使用那个数据库,当然也可以直接新建一个数据库。

第五步:

我们在那个数据库中创建一个表。

最后:

我们输入describe 表名;我们就可以显示表内容了。

扩展资料:

与其他的大型数据库,例如 Oracle、DB2、SQL Server等相比,MySQL[1] 
自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。

Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。

参考资料:百度百科-mysql应用环境

参考技术A

select * from 表名称 即可。

如果是要查询某一个表某一个列的在这个表中的详细信息,可以用

select * from 表名称 where 列名称=筛选条件  如学号,姓名等,中文字段或特殊字段需加‘’(‘小明’)等。

扩展资料:

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

参考资料:百度百科——mysql

参考技术B

在CMD中想要显示表里的内容,需要完成一个必要步骤先:连接认证,就是让客户端mysql.exe连上数据库服务器(mysql\\bin\\mysql.exe)。这里面涉及到几个参数问题:

-h:主机地址,可以是主机名也可以是服务器所在的ip地址,如-hlocalhost表示本机,如果是本机可以忽略该参数信息

-P:端口信息(大写P),MySQL默认端口是3306,即-P3306,如果是默认端口可以忽略

-u:用户名字,如MySQL安装的超级管理员用户为:-u3306(用户名通常必须)

-p:用户密码(小写p),安装MySQL的时候设置的用户,也可以是root管理员创建的用户设定的密码,使用-p密码(建议先回车,后输入密码:安全)

注意:如果你的环境是集成环境或者有创建匿名用户,那么可以直接使用mysql.exe访问,不需要输入用户名和密码信息:mysql.exe -h202.12.1.10 -P3308  + 回车

客户端连接上mysql服务端之后,就可以使用mysql对应的操作指令SQL(结构化查询语言)来实现数据库的操作了。一波简单的操作流程如下:

1、 选择数据库:use + 数据库名字;(可以实现使用show databases 查看所有数据库),因为数据表是“装”在数据库里的

2、 查询数据表:select 字段列表 / * from 数据表名字 [where条件 group by分组 having判定 order by排序 limit 限定];(可以使用show tables查看所有表,[]里面的内容表示可以有也可以没有)

总结:正如上面所看到的mysql的查询指令可以有很多的其他部分,如果想要更多数据查询方式,数据精细化查询,可以去黑马程序员的6天玩转MySQL看看,还是比较详细的。

参考技术C

TABLE 语句

具体语法:TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]
其实从语法上看,可以排序,也可以过滤记录集,不过比较简单,没有 SELECT 那么强大。

示例 1

简单的建一张很小的表 y1,记录数为 10 条。表 t1,插入 10 条记录

    mysql-(ytt/3305)->create table t1 (r1 int,r2 int);

    Query OK, 0 rows affected (0.02 sec)

    mysql-(ytt/3305)->insert into t1

    with recursive aa(a,b) as (

    select 1,1

    union all

    select a+1,ceil(rand()*20) from aa where a < 10

    ) select * from aa;

    Query OK, 10 rows affected (0.00 sec)

    Records: 10  Duplicates: 0  Warnings: 0

    简单全表扫描mysql-(ytt/3305)->select * from t1;+------+------+| r1   | r2   |+------+------+|    1 |    1 ||    2 |    9 ||    3 |    9 ||    4 |   17 ||    5 |   17 ||    6 |   16 ||    7 |    6 ||    8 |    1 ||    9 |   10 ||   10 |    3 |+------+------+10 rows in set (0.00 sec)
    TABLE 结果mysql-(ytt/3305)->table t1;+------+------+| r1   | r2   |+------+------+|    1 |    1 ||    2 |    9 ||    3 |    9 ||    4 |   17 ||    5 |   17 ||    6 |   16 ||    7 |    6 ||    8 |    1 ||    9 |   10 ||   10 |    3 |+------+------+10 rows in set (0.00 sec)
    看下 table 的执行计划mysql-(ytt/3305)->explain table t1 order by r1 limit 2\\G*************************** 1. row ***************************           id: 1  select_type: SIMPLE        table: t1   partitions: NULL         type: ALLpossible_keys: NULL          key: NULL      key_len: NULL          ref: NULL         rows: 10     filtered: 100.00        Extra: Using filesort1 row in set, 1 warning (0.00 sec)
    其实可以看到 TABLE 内部被 MySQL 转换为 SELECT 了。mysql-(ytt/3305)->show warnings\\G*************************** 1. row ***************************  Level: Note   Code: 1003Message: /* select#1 */ select `ytt`.`t1`.`r1` AS `r1`,`ytt`.`t1`.`r2` AS `r2` from `ytt`.`t1` order by `ytt`.`t1`.`r1` limit 21 row in set (0.00 sec)
    那其实从上面简单的例子可以看到 TABLE 在内部被转成了普通的 SELECT 来处理。示例 2应用于子查询里的子表。这里要注意,内表的字段数量必须和外表过滤的字段数量一致。克隆表 t1 结构mysql-(ytt/3305)->create table t2 like t1;Query OK, 0 rows affected (0.02 sec)
    克隆表 t1 数据mysql-(ytt/3305)->insert into t2 table t1;Query OK, 10 rows affected (0.00 sec)Records: 10  Duplicates: 0  Warnings: 0
    table t1 被当做内表,表 t1 有两个字段,必须同时满足 t2 检索时过滤的字段也是两个。mysql-(ytt/3305)->select * from t2 where (r1,r2) in (table t1);+------+------+| r1   | r2   |+------+------+|    1 |    1 ||    2 |    9 ||    3 |    9 ||    4 |   17 ||    5 |   17 ||    6 |   16 ||    7 |    6 ||    8 |    1 ||    9 |   10 ||   10 |    3 |+------+------+10 rows in set (0.00 sec)
    注意:这里如果过滤的字段数量和子表数量不一致,则会报错。
参考技术D http://tech.ddvip.com/2006-12/116755047917053_3.html

看看吧 最基础的教程

链接数据库
mysql -h localhost -u username -p password
显示所有数据库
show databases
选定数据库
use database_name
查看所有表
show tables
查看表中内容
select * from table_name本回答被提问者采纳

以上是关于mysql里查询时怎么把一张表里的上级ID显示为上级名称?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 查询树形接口sql

mysql 数据库查询 按时间排序 如果时间一样 按主键排序怎么写 在一张表里

怎么往mysql表里添加数据

在MYSQL中怎样把某字段(已存在)唯一化

mysql 啥时候分区 啥时候分表

thinkPHP两个表查询:从一个表里取出6条数据的id,再根据这些id去查另一个表里的数据