php - 加入MYSQL和PHP

标签 php mysql sql

<分区>

我想从三个表中获取数据 Products , Attributesfeatures 一种产品可能有多种功能和属性

我正在使用查询

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

其他信息

         Read something here
<强> MySQL JOIN Tutorials

关于php - 加入MYSQL和PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879969/

上一篇:php - 数组中的重复区域

下一篇:php - PHP中计算SQL结果集中某个值的出现次数

相关文章:

php - 如何在 PHP 中的请求之间持久化对象

php - WordPress 过去三天的所有帖子

php - 当composer连接到GitHub时,我会收到有关弃用身份验证方法的警告。我应该使用什么身份验证配置?

php - Mongo 更新当前数据,重用数据集中的字段

mysql - "Insert.. on Duplicate"是更新整行还是特定列?

java - 无法从 Eclipse 中的 jsp 连接到 mySQL DB

mysql - 使用 NOT IN 从这个查询中我能得到什么?

mysql - 获取表中唯一值计数的语句是什么?

SQL Server : Find records where XML is missing tag

sql - 列出 Hive 表属性以创建另一个表