MySQL Query,两个表连接和使用

时间:2013-06-22 22:07:59

标签: mysql

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

我得到了我需要的信息,但是如何将这两个查询合并为一个,所以我从上面的例子中得到它

3 个答案:

答案 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");

注意:$mySQLinew mysqli(),其中包含正确的参数。