2012-02-24 71 views
0

我有两个MySQL表称为产品和类别Mysql的其中两个表

产品

id  name   category   
1   Product #1  1   
2   Product #2  1    
3   Product #3  1    
4   Product #4  2    

类别

id  name     
1   Category #1    
2   Category #2     
3   Category #3     
4   Category #4   

我怎么会叫所有的产品,其中类别#1是真的吗?必须使用实际名称而不是数字,以便mysql可以看到该category.name = category.id,然后根据该名称调用所有产品。

+0

如果您有任何问题,请阅读http://en.wikipedia.org/wiki/Join_(SQL)并返回给我们。 – YXD 2012-02-24 19:58:05

+0

或http://www.tizag.com/mysqlTutorial/mysqljoins.php和http ://www.tizag.com/mysqlTutorial/mysqlleftjoin.php – biziclop 2012-02-24 19:58:42

回答

1

简单连接:

SELECT * FROM products AS p 
LEFT JOIN categories AS c ON p.category = c.id 
WHERE c.name LIKE 'Category #1' 
+0

感谢您的帮助。 – Claremont 2012-02-24 20:25:21

+2

从技术上讲,我想你会想要一个内部连接,但结果是一样的。 – 2012-02-24 20:49:58

0
Select 
     P.* 
    from 
     Category C 
     JOIN Products P 
      on C.ID = P.Category 
    where 
     C.Name = 'Category #1' 

这样,就立即与它的名字你的类别表开头,则变成由适当的内部ID链接引用匹配的产品。