所以我有两个表。
一个存储用户,名为user
:
id date_joined username
1 2014-12-12 UserA
2 2014-11-11 UserB
另一个存储内容,名为article
:
id user_id date content
1 1 2014-10-10 content here
2 1 2014-11-10 content here
3 2 2014-12-10 content here
4 1 2014-13-10 content here
查询此数据以获取每个用户的用户名和内容的正确方法是什么?
我目前有这个:
SELECT user.username, article.date, article.content
FROM article
LEFT JOIN user ON user.id = article.user_id
ORDER BY article.date
哪个可行,但完全是猜测。这是正确的查询吗?我需要所有元素中的 user.
和 article.
吗?或者只是为了 LEFT JOIN
位?
那么这也是正确/推荐的吗?
SELECT username, date, content
FROM article
LEFT JOIN user ON user.id = article.user_id
ORDER BY date
最佳答案
只有在两者都有同名列的情况下,您才需要 table.column 语法。如果只有一个选项——没必要(尽管在我看来这样查询更清晰)
至于查询本身——这很好,但你需要知道一件事(并决定你想要什么,从你的问题中不清楚)——左连接或内连接。 inner join - 只会给你两个表中都存在的结果(即 - 如果 user_id 3 存在于 article 而不是 user - 你不会得到它。使用 left join - 在这种情况下你会得到 user_id 3 记录,其值为来自文章表,以及用户表列上的空值 所以这取决于需要决定哪个,但基本上你的查询没问题
关于mysql - 将用户表加入内容表的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213770/