MySQL加入混淆了我,我总是得到语法错误

时间:2013-03-13 00:27:05

标签: mysql join

我需要从MySQL db中获取一些数据。我使用两个单独的简单查询来运行该函数,但我确信这可能通过使用JOIN的一个查询来实现。 SQL不是我的强项,我在尝试时会遇到语法错误。当然,我可以保持原样,为什么不,它有效。但我更愿意看到一个真实世界的例子,说明它们如何加入,以便我可以尝试将其应用于其他查询。

查询一个是:

select manufacturers_id from products where products_name = product a

然后将结果放入变量并在以下

中使用
select manufacturers_name from manufacturers where manufacturers id = $man_id

因此,基本上,products表包含manufacturers_id,我们需要为给定的产品收集manufacturers,以便从manufacturers_id表中找出制造商名称。 {{1}}是常见字段。

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT b.manufacturers_name 
FROM products a
LEFT JOIN manufacturers b ON a.manufacturers_id = b.manufacturers_id
WHERE a.products_name = 'PRODUCT NAME'

以下是SQL Joins

的图表

SQL JOINS

Image Source

答案 1 :(得分:0)

我相信这就是你要找的东西

SELECT manufacturers.manufacturers_name
FROM products
JOIN manufacturers on manufacturers_id=products.manufacturers_id
WHERE manufacturers_name='product a'

使用连接,您只需要遵循这种语法,并记住您必须将匹配的列设置为彼此相等,这样您就不会得到无效的行。

我会告诉你这个using table的等价物如何加入,但我真的不想鼓励使用那种语法,即使是偶然的。

答案 2 :(得分:0)

试试这个:

 select m.manufacturers_name from products p, manufacturers m
 where p.products_name = 'productA' and p.manufacturers_id = m.id