mysql - 根据外键关系查询输出结果
问题描述
我在 MySQL 中有以下 2 个表: products (id(int), title(varchar), description(varchar), add_date(datetime)), images (id(int), product_id(int), image_file(varchar), main_image (二进制),date_add(日期时间))。列main_image只有一个产品图像的值为 1,其余为 0。由于代码中的错误,在表中添加的一些图像没有main_image = 1。我需要解决这个问题。如何选择没有一个main_image = 1的所有产品
解决方案
您可以取每个产品MAX
的所有值中的main_image
,只选择那些 aMAX
等于 0 的产品(即没有值为1
):
SELECT product_id
FROM images
GROUP BY product_id
HAVING MAX(main_image) = 0
如果需要,您可以将其用作子查询并将JOIN
其用于产品表(或在IN
表达式中使用)以获取这些产品的详细信息,例如
SELECT *
FROM products
WHERE id IN (SELECT product_id
FROM images
GROUP BY product_id
HAVING MAX(main_image) = 0)
推荐阅读
- react-native - 如何解决此警告:VirtualizedLists 永远不应嵌套在具有相同方向的普通 ScrollViews 中
- reactjs - 是否可以使用 react-select 摆脱输入字段?
- c# - 通过rest api c#在jira中设置自定义单选按钮字段
- node.js - Keystonejs 5 - 字段类型数组?
- asp.net - 删除创建的缓存
标签助手 - c# - Nuget 辅助文件取决于当前项目构建
- ssl - 将 IIS Express SSL 证书分配给一个 stie 断开了我的 IIS 站点证书的其余部分
- algorithm - 具有配对值的子集和
- angular - 在 Angular 库中使用 Typescript 路径映射
- sql-server - 将 Oracle 语句转换为 SQL Server 格式