mysql join,从select中的其他表中检索数据

时间:2013-01-27 20:48:12

标签: mysql sql

我有一个表1产品(productID,name,description,productCategoryID)和表2类别(categoryID,name)的经典示例,我想要的是使用select语句来获取产品表输出但是产品结果集中的类别名称而不是ID,我知道这一定非常简单,但我用谷歌搜索并查看了类似的问题,并且无法理解联接在我的情况下如何工作 谢谢

2 个答案:

答案 0 :(得分:1)

您想在两个表之间使用JOIN

select p.productId
   p.name as ProductName, 
   p.description,
   c.name CategoryName
from products p
inner join categories c
  on p.productCategoryId = c.categoryId

如果您需要帮助学习联接,请参阅great visual explanation of joins

我在两个表之间使用了INNER JOIN。这将返回两个表之间匹配的所有行。如果您想要返回所有products,无论category表中是否有匹配的行,那么您将需要使用LEFT JOIN

答案 1 :(得分:1)

理想情况下,我们会看到您自己的一些代码......但是......

SELECT products.productID, 
       products.name as ProductName, 
       products.description, 
       categories.name as CategoryName
FROM Products
INNER JOIN categories 
ON categories.categoryID = Products.productCategoryID