连接数据库PDO

$user = "root";  //数据库连接账号

$pass = "root";  //数据库连接密码

$dbname = "test";		//数据库名

try {
$db = new PDO("mysql:host=localhost;dbname=$dbname", $user, $pass); //连接数据库
echo "数据库连接成功";
} catch (PDOException $e) {
echo "数据库连接失败";
}

表一:user表

 id name 姓名 sex 性别 age 年龄
1 fan 0 18
2 jack 0 25
3 xiaoming 0 33
4 laowang 1 50
5 julia 0 22
6 pangda 1

53

表二:user_Identity表

id identity_number 身份号码
1 111
2 222
3 3
4 444
5 555
6 666

1、内连接(Inner Join)

$sql = "select * from user as a inner join user_identity as b on a.id = b.identity_number"; //内连接user和user_identity表,as 起别名:user代表a,user_identity代表b

//$sql = "select * from user inner join user_identity on user.id = user_identity.id"; // 效果同上

//$sql = "select a.id,a.name,b.identity_number from user as a inner join user_identity as b on a.id = b.id";  //select 和 from 之间的意思是 - 输出a表的id字段,输出a表的name字段,输出b表的identity_number;

$data = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);

print_r ($data);

输出:

Array
(
[0] => Array
(
[id] => 3
[name] => xiaoming
[sex] => 0
[age] => 33
[identity_number] => 3
) )

2、左连接 (Left Join)

$sql = "select * from user as a left join user_identity as b on a.id = b.identity_number";

$data =  $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);

print_r($data);

输出:

Array
(
[0] => Array
(
[id] => null
[name] => fan
[sex] => 0
[age] => 18
[identity_number] => null
) [1] => Array
(
[id] => null
[name] => jack
[sex] => 0
[age] => 25
[identity_number] => null
) [2] => Array
(
[id] => 3
[name] => xiaoming
[sex] => 0
[age] => 33
[identity_number] => 3
) [3] => Array
(
[id] => null
[name] => laowang
[sex] => 1
[age] => 50
[identity_number] => null
) [4] => Array
(
[id] => null
[name] => julia
[sex] => 0
[age] => 22
[identity_number] => null
) [5] => Array
(
[id] => null
[name] => pangda
[sex] => 1
[age] => 53
[identity_number] => null
) )

3、右连接 (Right Join)

$sql = "select * from user as a right join user_identity as b on a.id = b.identity_number";

$data =  $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);

print_r($data);

输出:

Array
(
[0] => Array
(
[id] => 1
[name] => null
[sex] => null
[age] => null
[identity_number] => 111
) [1] => Array
(
[id] => 2
[name] => null
[sex] => null
[age] => null
[identity_number] => 222
) [2] => Array
(
[id] => 3
[name] => xiaoming
[sex] => 0
[age] => 33
[identity_number] => 3
) [3] => Array
(
[id] => 4
[name] => null
[sex] => null
[age] => null
[identity_number] => 444
) [4] => Array
(
[id] => 5
[name] => null
[sex] => null
[age] => null
[identity_number] => 555
) [5] => Array
(
[id] => 6
[name] => null
[sex] => null
[age] => null
[identity_number] => 666
) )

4、其他连接-省略。。。

mysql常用连接查询的更多相关文章

  1. MySql的连接查询

    类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...

  2. MySQL查询优化:连接查询排序limit

    MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27      个评论       收藏    我要投稿   MySQL查询优化:连接查询排序 ...

  3. MySQL常用的查询命令

    MySQL常用的查询命令 author: headsen chen   2017-10-19  10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ...

  4. mysql常用快速查询修改操作

    mysql常用快速查询修改操作 一.查找并修改非innodb引擎为innodb引擎 # 通用操作 mysql> select concat('alter table ',table_schema ...

  5. 【杂记】mysql 左右连接查询中的NULL的数据筛选问题,查询NULL设置默认值,DATE_FORMAT函数

    MySQL左右连接查询中的NULL的数据筛选问题 xpression 为 Null,则 IsNull 将返回 True:否则 IsNull 将返回 False. 如果 expression 由多个变量 ...

  6. Mysql表连接查询

    原文地址: https://www.cnblogs.com/qiuqiuqiu/p/6442791.html 1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等 ...

  7. MySQL常见连接查询

    在实际应用中,由于不同的业务需求,一般的select查询语句无法满足要求.所以就需要了解一些MySQL的高级查询方式 内连接 inner join 典型的连接查询,有相等(=)连接和不等(<&g ...

  8. 【mysql】连接查询

  9. MySQL之连接查询

    主要是多表查询和连接查询

随机推荐

  1. VUE图片懒加载-vue lazyload插件的简单使用

    序:vue项目时候,我们要对图片进行懒加载处理,这个开发项目中就不需要自己去写了,因为比较方便使用vue lazyload进行处理,高效率开发 一. vue lazyload插件: 插件地址:http ...

  2. Python入门教程丨1300多行代码,让你轻松掌握基础知识点

    欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 前言 本文适合有经验的程序员尽快进入Python世界.特别地 ...

  3. centos7 下通过yum安装JDK

    1.查看yum库中jdk的版本 2.下载安装的jdk 3.会出现几个选择 Is this ok .   输入 y 就可以了. 4.配置环境变量    vi /etc/profile  进入编辑文本在最 ...

  4. rpc调用过程

    在openstack中,各个组件之间的调用遵循RESTful风格,而组件内部各服务之间的相互调用采用rpc远程调用,比如nova-conductor和nova-compute rpc原理: 首先了解什 ...

  5. Linux中近期使用高频命令小结

    配置定时任务命令crontab : 用来增加系统的定时任务,可以指定用户,时间,以及相关指令: 查看端口是否相通,扫描端口nc: nc -v ip地址 端口号: 转换格式命令dos2unix: 用来将 ...

  6. Linux网络编程学习(四) -----守护进程的建立(第三章)

    本文介绍一个例程daemon_init() #include <sys/types.h> #include <signal.h> #include <unistd.h&g ...

  7. Android中五大字符串总结(String、StringBuffer、StringBuilder、Spanna

    https://www.aliyun.com/jiaocheng/2861.html?spm=5176.100033.1.35.2ed56b03CbsYFK 摘要:String.StringBuffe ...

  8. 网站加入QQ在线客服

    <!-- qq客服 --> <div class="QQFloat" > <div class="qq"> <div ...

  9. 最流行的Python编辑器/IDEs你认识吗?

    来源商业新知网,原标题:来!带你认识几种最流行的Python编辑器/IDEs(附链接) 大数据文摘授权转载自数据派THU 作者:By Gregory Piatetsky 格雷戈里·皮亚特斯基,KDnu ...

  10. mui之上拉刷新和mui-content结合解决ios上拉不回弹的bug

    打电话.发短信 https://blog.csdn.net/itguangit/article/details/78210770