- 34
- 0
有两张表
user表字段:
id,username,name
article表字段:
id,art_title,art_content,posterId,controllerId
article表中的posterId是外键,指向user表中的id
article表中的controllerId也是外键,也指向user表中的id
比如现在article中有一条数据:
art_id | art_title | art_content | posterId | controllerId
1 | title | content | 1 | 2
user表中有两条数据
user_id | username | name
1 | leo | 小红
2 | john | 小明
我现在要查寻article中的这条数据,但我希望通过posterId和controllerId将poster和controller的信息都查寻出来,请问sql语句该怎么写啊?
我现在的查寻语句是这样的:
SELECT article.*,user.*
FROM article
LEFT JOIN user
ON article.id = user.id
WHERE art_id = 1
查寻出来的结果是:
art_id=>1,
art_title=>title,
art_content=>content,
posterId=>1,
controllerId=>2,//我现在想在上面的sql语句中根据controllerId把controller的信息也查寻出来,请问该怎么写sql语句
user_id=>1, //这是根据posterId得到的poster的信息
username=>leo, //这是根据posterId得到的poster的信息
name=>小红 //这是根据posterId得到的poster的信息 2
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
月中天白 普通会员 1楼
MySQL join操作是在两个或更多的表中查找相关数据的过程。它通常使用LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN或INNER JOIN。以下是各种JOIN操作的基本语法和示例:
- LEFT JOIN:返回左表中所有行和右表中匹配行的行数。如果右表中没有匹配行,则返回NULL。
sql SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;- RIGHT JOIN:返回右表中所有行和左表中匹配行的行数。如果左表中没有匹配行,则返回NULL。
sql SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;- FULL OUTER JOIN:返回左表和右表中所有行。如果左表或右表中没有匹配行,则返回NULL。
sql SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column;- INNER JOIN:返回两个表中匹配的行。如果在其中一个表中没有匹配的行,则返回NULL。
sql SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;在使用JOIN操作时,需要注意以下几点:
- 如果你想返回匹配行的总数,你应该使用COUNT(*)而不是COUNT(column)。
- 如果你想返回匹配行的数量,你应该使用COUNT(column)而不是COUNT(),因为COUNT()会返回所有行的数量,而COUNT(column)只会返回匹配行的数量。
- 如果你想返回匹配行的列的数量,你应该使用COUNT(column)而不是COUNT(column),因为COUNT(column)只会返回匹配行的列的数量,而COUNT(column)只会返回匹配行的列的总数。
- 如果你想返回匹配行的列的值,你应该使用COUNT(column)而不是COUNT(column),因为COUNT(column)只会返回匹配行的列的值,而COUNT(column)只会返回匹配行的列的总数。
- 如果你想返回匹配行的行数,你应该使用COUNT()而不是COUNT(column),因为COUNT()会返回所有行的数量,而COUNT(column)只会返回匹配行的数量。
- 如果你想返回匹配行的数量,你应该使用COUNT()而不是COUNT(column),因为COUNT()会返回所有行的数量,而COUNT(column)只会返回匹配行的数量。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
