写sql语句的思路
SQL子查询
概念:子查询是嵌套在一个select语句中的另一个select语句。当需要从一个表中检索信息,
而检索条件值又是来自该表本身的内部数据时,子查询非常有用。 子查询可以嵌套在一下SQL子句中:where子句、having子句和from子句。
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
合计函数:
MIN |
返回一个给定列中最小的数值 |
MAX |
返回一个给定列中最大的数值 |
SUM |
返回一个给定列中所有数值的总和 |
AVG |
返回一个给定列中所有数值的平均值 |
COUNT |
返回一个给定列中所有数值的个数 |
COUNT(*) |
返回一个表中的行数 |
合计函数用于从SELECT语句中计算一个”返回列的数据”。它们是总结了所选数据列的结果。虽然它们需要"GROUP BY"子句,但是这些函数也可以在不用使用"GROUP BY"子句的情况被使用,比如 :
SELECT AVG(salary)
FROM employee;
这条语句将返回单一的结果,它包含了从employee表中所有salary列数据的平均值。为了更好的理解,我们再举个例子:
SELECT AVG(salary)
FROM employee;
WHERE title = 'Programmer';
以上这条语句将返回employee表中所有title列为'Programmer'的数据的平均值。
先用图讲解吧
表product_attribute_meta中的id注入到表product_attribute中
如果要实现如下图结果
一般的思路就是从 被注入外键的表中开始 思考。即:表product_attribute表中
即:先把表product_attribute中需要的value字段查出来。
接下来还需要字段 internalname 和 property 因此要用到 表product_attribute_meta表,找根据他们之间的外键注入 将两表联系起来
SELECT pa.`value`,pam.internal_name,pam.property FROM product_attribute pa,product_attribute_meta pam WHERE pa.pro_attr_metaId=pam.id AND productId=1;