<分区>
<分区>
我想从三个表中获取数据 Products
, Attributes
和features
一种产品可能有多种功能和属性
我正在使用查询
select *
from products p, features f, attributes a
where p.id =1 and p.id = f.id and p.id = a.id
我想知道查询是否正确???
最佳答案
您正在使用ANSI SQL-89
句法。但我建议使用ANSI SQL-92
句法。示例如下:
SELECT *
FROM products p
INNER JOIN features f
ON p.id = f.id
INNER JOIN attributes a
ON p.id = a.id
where p.id =1
这样,您必须显式定义它们的关系(ON
子句)以避免语法错误。 ANSI SQL-89
语法很容易出错,您可能不会注意到它,因为它不会产生错误。示例
SELECT *
FROM products p, features f, attributes a
where p.id =1
如果不定义关系字段,它仍然会执行,但会给出无效结果。来自 INNER JOIN
,现在是CROSS JOIN
其他信息
关于php - 加入MYSQL和PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879969/