2012-06-30 63 views
1

我得到了2个表格;产品表有这些列:来自2个表的SQL查询

id, name_product, producer_id, number_product 

和制片表:

id, producer_name 

我必须和产品的名称显示生产商名称,如果生产者没有产品,他应该被忽略。

我尝试这个查询

SELECT producer_name, name_product FROM product, producer WHERE name_product = producer_id 

出于某种原因,它的返回空栏,没有错误。

感谢您的任何提示

回答

0

很可能是因为您匹配错误的列。无论何时你说“WHERE”,你通常都会匹配通用数据项。

name_product and producer_id 

声音不同

1

您需要join你的表

SELECT 
    prd.producer_name, 
    p.name_product 
FROM product p 
INNER JOIN producer prd ON p.producer_id = prd.id 
+0

+1,但OP确实有一个隐式连接,虽然条件不对。 –

+0

不是'SELECT producer_name, name_product'应该是'SELECT prd.producer_name, p.name_product' –

+1

这不行。它会抛出错误的“雄心勃勃的专栏” – Sajmon

1

这个怎么样?

SELECT t2.producer_name, t1.name_product FROM product t1 
JOIN producer t2 
ON t1.id=t2.id 
WHERE t1.name_product = t2.producer_id