Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 来自不同表的where子句上的count()_Sql - Fatal编程技术网

Sql 来自不同表的where子句上的count()

Sql 来自不同表的where子句上的count(),sql,Sql,我有一个搜索功能,可以根据mysql的输入搜索结果。现在我想在where子句中包含来自不同表的结果的count()likes 像这样的场景我想搜索count(比如id)>=1的“Dog”。 我想包括的Likes表是:Table\u GLOBAL\u Likes 表\u GLOBAL\u LIKES的结构是: 字段:如用户id,用户id,产品id,博客id TABLE\u GLOBAL\u PRODUCTS和TABLE\u GLOBAL\u LIKES都有一个公共字段PRODUCTS\u id和b

我有一个搜索功能,可以根据mysql的输入搜索结果。现在我想在
where
子句中包含来自不同表的结果的count()likes

像这样的场景<代码>我想搜索count(比如id)>=1的“Dog”。

我想包括的Likes表是:
Table\u GLOBAL\u Likes

表\u GLOBAL\u LIKES
的结构是: 字段:
如用户id
用户id
产品id
博客id

TABLE\u GLOBAL\u PRODUCTS
TABLE\u GLOBAL\u LIKES
都有一个公共字段
PRODUCTS\u id
blog\u id

这是我希望包含Likes表的工作查询

SELECT SQL_CALC_FOUND_ROWS p.*,
       CASE
           WHEN p.specials_new_products_price > 0.0000
                AND (p.expires_date > Now()
                     OR p.expires_date IS NULL
                     OR p.expires_date ='0000-00-00 00:00:00')
                AND p.status != 0 THEN p.specials_new_products_price
           ELSE p.products_price
       END price
FROM ".TABLE_GLOBAL_PRODUCTS." p
INNER JOIN ".TABLE_STORES." s ON s.blog_id = p.blog_id
WHERE MATCH (p.products_name,
             p.products_description) AGAINST ('*".$search_key."*')
  AND p.display_product = '1'
  AND p.products_status = '1' HAVING price <= ".$priceto_key."
  AND price >= ".$pricefrom_key."
ORDER BY p.products_date_added DESC, p.products_name
SELECT SQL\u CALC\u FOUND\u ROWS p.*,
案例
当p.specials\u new\u products\u price>0.0000时
和(p.expires\u date>Now()
或p.U日期为空
或p.expires_date='0000-00-00:00:00')
和p.status!=0然后p.特价商品\新产品\价格
其他产品价格
最终价格
来自“.TABLE\u GLOBAL\u PRODUCTS.”p
s.blog\u id=p.blog\u id上的内部联接“.TABLE\u STORES.”
其中匹配(p.products\u name,
p、 (“*”$search\u key.“*”)中的产品描述)
和p.display_product='1'
p.products_status='1'具有price=“.pricefrom_key.”
按p.products\u date\u添加描述、p.products\u名称订购
我是mysql查询的新手。。请帮助。

试试这个:

SELECT SQL_CALC_FOUND_ROWS p.*, COUNT(l.like_id)
       CASE
           WHEN p.specials_new_products_price > 0.0000
                AND (p.expires_date > Now()
                     OR p.expires_date IS NULL
                     OR p.expires_date ='0000-00-00 00:00:00')
                AND p.status != 0 THEN p.specials_new_products_price
           ELSE p.products_price
       END price
FROM ".TABLE_GLOBAL_PRODUCTS." p
INNER JOIN ".TABLE_STORES." s ON s.blog_id = p.blog_id
INNER JOIN ".TABLE_GLOBAL_LIKES." l ON l.blog_id = p.blog_id AND l.products_id = p.products_id
WHERE MATCH (p.products_name,
             p.products_description) AGAINST ('*".$search_key."*')
  AND p.display_product = '1'
  AND p.products_status = '1' HAVING price <= ".$priceto_key."
  AND price >= ".$pricefrom_key."
GROUP BY p.products_id
HAVING COUNT(l.like_id)>0
ORDER BY p.products_date_added DESC, p.products_name
SELECT SQL\u CALC\u FOUND\u ROWS p.*,COUNT(l.like\u id)
案例
当p.specials\u new\u products\u price>0.0000时
和(p.expires\u date>Now()
或p.U日期为空
或p.expires_date='0000-00-00:00:00')
和p.status!=0然后p.特价商品\新产品\价格
其他产品价格
最终价格
来自“.TABLE\u GLOBAL\u PRODUCTS.”p
s.blog\u id=p.blog\u id上的内部联接“.TABLE\u STORES.”
内部连接“.TABLE\u GLOBAL\u LIKES.”l ON l.blog\u id=p.blog\u id和l.products\u id=p.products\u id
其中匹配(p.products\u name,
p、 (“*”$search\u key.“*”)中的产品描述)
和p.display_product='1'
p.products_status='1'具有price=“.pricefrom_key.”
按产品编号分组
计数(l.like_id)>0
按p.products\u date\u添加描述、p.products\u名称订购
试试这个:

SELECT SQL_CALC_FOUND_ROWS p.*, COUNT(l.like_id)
       CASE
           WHEN p.specials_new_products_price > 0.0000
                AND (p.expires_date > Now()
                     OR p.expires_date IS NULL
                     OR p.expires_date ='0000-00-00 00:00:00')
                AND p.status != 0 THEN p.specials_new_products_price
           ELSE p.products_price
       END price
FROM ".TABLE_GLOBAL_PRODUCTS." p
INNER JOIN ".TABLE_STORES." s ON s.blog_id = p.blog_id
INNER JOIN ".TABLE_GLOBAL_LIKES." l ON l.blog_id = p.blog_id AND l.products_id = p.products_id
WHERE MATCH (p.products_name,
             p.products_description) AGAINST ('*".$search_key."*')
  AND p.display_product = '1'
  AND p.products_status = '1' HAVING price <= ".$priceto_key."
  AND price >= ".$pricefrom_key."
GROUP BY p.products_id
HAVING COUNT(l.like_id)>0
ORDER BY p.products_date_added DESC, p.products_name
SELECT SQL\u CALC\u FOUND\u ROWS p.*,COUNT(l.like\u id)
案例
当p.specials\u new\u products\u price>0.0000时
和(p.expires\u date>Now()
或p.U日期为空
或p.expires_date='0000-00-00:00:00')
和p.status!=0然后p.特价商品\新产品\价格
其他产品价格
最终价格
来自“.TABLE\u GLOBAL\u PRODUCTS.”p
s.blog\u id=p.blog\u id上的内部联接“.TABLE\u STORES.”
内部连接“.TABLE\u GLOBAL\u LIKES.”l ON l.blog\u id=p.blog\u id和l.products\u id=p.products\u id
其中匹配(p.products\u name,
p、 (“*”$search\u key.“*”)中的产品描述)
和p.display_product='1'
p.products_status='1'具有price=“.pricefrom_key.”
按产品编号分组
计数(l.like_id)>0
按p.products\u date\u添加描述、p.products\u名称订购
警告您的代码可能容易受到sql注入攻击!警告:您的代码可能容易受到sql注入攻击!