0

好吧,所以我正在使用 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

我得到了我需要的信息,但是如何将这两个查询组合成一个,以便从上面的示例中得到它

4

3 回答 3

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 教程

于 2013-06-22T22:22:19.843 回答
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检查工作示例。

于 2013-06-22T22:23:35.987 回答
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");

注意:$mySQLinew mysqli()正确的论点。

于 2013-06-22T22:24:47.647 回答