好吧所以我正在使用MySQL而且我已经获得了一个应该用于新闻文章的数据库,在数据库中我有两个表,一个是员工和其他文章。 表员工包括员工ID和姓名等,表格文章包含文章ID和有关文章的信息。 现在我想做的是,我想让所有员工,甚至那些没有写过任何文章的员工。我想告诉员工以及他们所处的文章ID。 例如:
employeeID | Name | articleID
1 | Loren | 26
2 | Jack | 22
2 | Jack | 23
5 | Clark | 25
5 | Clark | 26
5 | Clark | 27
2 | Loren | 28
2 | Louise | 30
2 | Louise | 31
2 | Louise | 33
现在这里是我认为它变得棘手的地方,我无法理解它,我应该进行连接以使两个表结合在一起,然后使用count来获取多少篇文章一位员工写的。 所以在使用两个查询时
SELECT Name, employeeID
FROM employees
SELECT articleID
FROM articles
我得到了我需要的信息,但是如何将这两个查询合并为一个,所以我从上面的例子中得到它
答案 0 :(得分:0)
假设文章上有一个employeeID
SELECT e.name, e.employeeID, count(*)
FROM employees e
JOIN articles a on a.employeeID = a.employeeID
GROUP BY (e.name, e.employeeID)
我没有检查过这个,但这是一般的想法。网上有很多SQL教程
答案 1 :(得分:0)
这应该是左外连接
SELECT e.Name, e.employeeID, COUNT(a.ArticleID) FROM Employees e
LEFT OUTER JOIN Articles a ON a.employeeID = e.employeeID
GROUP BY e.employeeID
您可以通过sqlfiddle检查工作示例。
答案 2 :(得分:0)
articleID
需要点JOIN
。假设您在employeeID
的同一个表格中也有一个articleID
。您的JOIN
看起来很简单:
$mySQLi->query("SELECT e.Name,e.employeeID,a.articleID FROM employees e,articles a WHERE e.employeeID = a.employeeID");
注意:$mySQLi
是new mysqli()
,其中包含正确的参数。