MySQL 多重连接

标签 mysql join

我创建了以下查询,它从 3 个不同的表中提取数据:

    SELECT
    product_searchables_names.class_name AS Class_Name,
    product_searchables_names.label AS Attribute_Label,
    jss_products.extrafield102 AS Attribute1,
    jss_products.extrafield103 AS Attribute2,
    jss_products.extrafield104 AS Attribute3,
    jss_products.extrafield105 AS Attribute4,
    jss_products.extrafield106 AS Attribute5,
    jss_products.extrafield107 AS Attribute6
    FROM
    product_searchables_categories 
    JOIN product_searchables_names ON product_searchables_categories.searchableID = product_searchables_names.ID
    JOIN jss_products ON product_searchables_categories.categoryID = jss_products.categories
    WHERE
    jss_products.productID = '134890'
    ORDER BY
    product_searchables_categories.searchable_order ASC

以下列格式输出数据

enter image description here

但我需要这种格式,其中第 1 行从“Attribute”1 中选择值,第 2 行从“Attribute2”等中选择值:

http://i50.tinypic.com/308bbcg.jpg

我该怎么做?

提前致谢

最佳答案

您可以尝试使用 case 语句 http://dev.mysql.com/doc/refman/5.1/de/case-statement.html喜欢

select
    product_searchables_names.class_name AS Class_Name,
    product_searchables_names.label AS Attribute_Label,
    CASE 
        WHEN product_searchables_names.label = 'Resolution' THEN jss_products.extrafield104
        WHEN product_searchables_names.label = 'Networked?' THEN jss_products.extrafield106
        WHEN ...
    END
from
    product_searchables_categories
...

或者使用类名代替标签

关于MySQL 多重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14359247/

相关文章:

PHP MySQL 使用两个 SESSION 双重提交

mysql - 使用嵌套查询对行进行排序(查询其他查询的结果)

mysql - 如何更新非空列值以自动增加列值(mysql)?

mysql - 一秒内选择过多 - Mysql

MySQL - SELECT + JOIN + ORDER BY 性能

php - 使用 CI DataMapper ORM 连接不同数据库中的表

python - Pandas 按条件连接两个数据框

php - 更新数据库 PHP/mysql 时遇到问题 [菜鸟]

mysql - 具有多个连接的慢 MySQL 查询

sql - 如何使用 JOIN 而不是 IN 选择一个人所属的所有组的名称?