繁体   English   中英

如果是则返回TRUE,检查另一个表中是否存在ID

[英]Check if ID exist in another table if yes return TRUE

我有一个杂货数据库,杂货项目属于类别或子类别,可以成为收​​藏列表的一部分

当我从类别中读取项目列表时,我想包含一个布尔值,以查看该项目是否是收藏夹列表的一部分。

收藏夹存储为Product_ID和USER_ID与主键索引ID的组合

我没有把左边的连接列为最喜欢的列表。

非常感谢您的支持。

带数据的数据库https://wetransfer.com/downloads/853bd65b90f3a36b4d9264c018bbda9720190409083930/7d620e


    Select a.*, ifnull(Deriv1.Count , 0) as Count, ifnull(Total1.PCount, 0) as PCount FROM `categories` a  
LEFT OUTER JOIN (SELECT `parent`, COUNT(*) AS Count FROM `categories` GROUP BY `parent`) Deriv1 ON a.`id` = Deriv1.`parent` 
LEFT OUTER JOIN (SELECT `category_id`,COUNT(*) AS PCount, 
JOIN (SELECT id From Favorite Where userID='1' )  FROM `products` GROUP BY `category_id`) Total1 ON a.`id` = Total1.`category_id` 
WHERE a.`parent`=" . $parent


我没有得到检索两个'计数列'的含义。 但是,如果您只是需要用户1的喜好,您可以使用此查询中的FavouriteOrNot列:

SELECT p.product_id, a.id, f.userID, IFNULL(Deriv1.Count , 0) as Count, IFNULL(Total1.PCount, 0) as PCount, IFNULL(f.id, 0) as FavouriteOrNot 
FROM 
`products` p 
INNER JOIN 
`categories` a 
ON 
p.`category_id` = a.`id` 
LEFT OUTER JOIN 
(SELECT `parent`, COUNT(*) AS Count FROM `categories` GROUP BY `parent`) Deriv1 
ON 
a.`id` = Deriv1.`parent` 
LEFT OUTER JOIN 
(SELECT `category_id`,COUNT(*) AS PCount FROM `products` GROUP BY `category_id`)Total1 
ON 
a.`id` = Total1.`category_id` 
LEFT OUTER JOIN 
`Favorite` f 
ON 
f.`ProductID` = p.`product_id` 
AND 
userID = 1 
WHERE a.`parent`= 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM