MySQL加入操作以获取有关帖子的信息以及撰写帖子的用户的姓名
我不太清楚如何做到这一点。联合询问对我来说仍然有点困惑 我有以下表格:MySQL加入操作以获取有关帖子的信息以及撰写帖子的用户的姓名,mysql,join,Mysql,Join,我不太清楚如何做到这一点。联合询问对我来说仍然有点困惑 我有以下表格: users: id, name, password posts: id, user_id, title, content, date 我希望得到这样的结果: title, content, user, date SELECT * FROM users, posts; 我知道我可以从以下表格中获取所有数据: title, content, user, date SELECT * FROM users, posts;
users: id, name, password
posts: id, user_id, title, content, date
我希望得到这样的结果:
title, content, user, date
SELECT * FROM users, posts;
我知道我可以从以下表格中获取所有数据:
title, content, user, date
SELECT * FROM users, posts;
我想要的不仅仅是使用哥伦比亚的数据,但我一直试图让它更干净,但没有成功。非常感谢您的帮助。谢谢 应该使用联接和表别名
select p.title, p.content, u.name, p.date
from posts p
join users u on u.id=p.user_id
如果不想使用join语法,可以对笛卡尔积执行相同的操作,并使用where语句
select p.title, p.content, u.name, p.date
from posts p, users u
where u.id=p.user_id
编辑:
修复了一些打字错误您应该使用联接和表别名
select p.title, p.content, u.name, p.date
from posts p
join users u on u.id=p.user_id
如果不想使用join语法,可以对笛卡尔积执行相同的操作,并使用where语句
select p.title, p.content, u.name, p.date
from posts p, users u
where u.id=p.user_id
编辑:
修复了一些打字错误试试这个
select title, content, user, date
from users u
inner join posts p
on u.id = p.user_id
试试这个
select title, content, user, date
from users u
inner join posts p
on u.id = p.user_id
集合
SELECT*FROM users,posts
称为笛卡尔积,本质上是每个用户对每个post的乘积,在本例中,这不是很有用。根据Matthew的回答,您需要确保users.id与posts.user_id相同,或者通过WHERE
,或者通过JOIN
。setSELECT*FROM users,posts
称为笛卡尔积,本质上是每个用户对每个帖子的乘积,在这种情况下,这不是很有用。根据Matthew的回答,您需要确保users.id与posts.user_id相同,可以通过WHERE
,也可以通过JOIN
。