暂无 |

子查询与表连接

在很多情况下,子查询的效果与JOIN 表连接很类似,但一些特殊情况下,是必须用子查询而不能用表连接的,如:

SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)

以及下例:

SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)

该例子要找出用户发表了 2 篇文章的所有文章记录。对应的两个数据表如下:

article 文章表:
aid title content uid
1 文章1 文章1正文内容... 1
2 文章2 文章2正文内容... 1
3 文章3 文章3正文内容... 2
4 文章4 文章4正文内容... 3
user 用户表:
uid username password status
1 admin b7e591c246d010bb2ccd77d52490c85e 1
2 小明 a193686a53e4de85ee3f2ff0576adf01 1
3 Jack 0193686a35e4de85ee3f2ff0567adf490 0

查询返回结果如下所示:

aid title content uid
1 文章1 文章1正文内容... 1
2 文章2 文章2正文内容... 1
java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论