mysql - 在 mysql 的主查询中使用子查询返回 2 列

标签 mysql sql pivot

我想在 mysql 数据库中填充一个表。首先,我想撤回所有可能性,并删除不需要的可能性(比手动添加它们更容易)。

决赛 table 是:

组合

combID
productID
type
content
exclude
extrafield2
extrafield6

数据来自

extrafields_values

exvalueID
productID
extrafieldID
content

对于每个产品,我需要为 extra_field_values(extrafieldID = 2 和 extrafieldID = 6)中的每个组合返回一行

例如:

  • 产品编号 = 700
  • extrafield2 = E, D, F
  • extrafield6 = 34,35,36,37

为每个组合返回 exvalueID 到 extrafields2 和 6

到目前为止我已经尝试过:

SELECT EV.productID, extraFieldID, content AS extrafield6, 
    (SELECT  content AS extrafield2 
     FROM wjf_extrafields_values AS EV2
         INNER JOIN wjf_products AS P2
     WHERE extraFieldID = 6) AS extrafield2 
FROM wjf_extrafields_values AS EV 
    INNER JOIN wjf_products AS P ON P.productID = EV.productID 
WHERE extrafieldID = 6

最佳答案

我相信您只需要将您的 wjf_products 表链接到您的 extrafield_values 表两次,如下所示。

select p.productID, ev1.content as extrafield2, ev2.content as extrafield6
from wjf_products p inner join extrafields_values ev1 on p.productID = ev1.productID
inner join extrafields_values ev2 on p.productID = ev2.productID
where ev1.extraFieldID = 2
and ev2.extraFieldID = 6

关于mysql - 在 mysql 的主查询中使用子查询返回 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768784/

相关文章:

java - JDBC 中的结果集搜索错误

java - 使用的表型 Spring Boot 的最大行大小

mysql连接三个表,同一个表两次

sql - 如何在按计数排序的sql表中获取10个中级用户

MYSQL 查询 DateTime,查找现有预订

linq - 如何使用 c# 通过 linq 构建数据透视表

swift - 删除 Vapor Fluent Pivot

python - 在各自的单热编码列中填充分类数据的值

php - 从 Apache 迁移后 IIS7 上出现链接错误

php - 无法将长数据发送到 mysql MEDIUMTEXT 或 MEDIUMBLOB