【问题标题】:matching values on separate lists in phpphp中不同列表上的匹配值
【发布时间】:2016-03-14 14:44:27
【问题描述】:

对不起,如果这有点冗长,但这里有一些背景。

我正在将一些产品从一个购物车迁移到另一个。原始购物车非常旧,导出文件仅提供不同产品选项的选项 ID。例如。如果产品是红色、黄色和蓝色,它可能会给我选项 id 1,2 和 3。

我设法获得了一个单独的列表,其中显示了所有可用的选项 ID 和它所引用的选项。

所以,列表 A 向我显示了每个产品和可用的选项 ID,如下所示:

List A

在本例中,product_id 1 可以是 T 恤,option_id 11 可以是“颜色”,各种 option_value_id 可以是红色、蓝色、黄色等

列表 B 向我展示了每个 option_value_id 的实际含义,如下所示:

List B

基本上我想编写一个 PHP 脚本,它将比较两个列表和每个唯一的产品 ID,然后对于每个唯一的选项 ID,以以下格式输出一行文本:

product_id;option_id;以逗号分隔的选项值列表,例如

1;11;红、蓝、绿、黄...

我对 PHP 还很陌生,我从整理一个网络表单开始,这样我就可以粘贴电子表格中的数据,但我认为我找错了树。然后我想也许将它们作为数据库中的 2 个 MySQL 表进行比较?

有人可以指点我正确的方向吗?

【问题讨论】:

标签: php mysql cs-cart


【解决方案1】:
SELECT a.product_id, a.option_id, GROUP_CONCAT(DISTINCT b.option_name SEPARATOR ', ') as option_names 
FROM listA a 
LEFT JOIN listB b ON a.option_value_id = b.option_id
GROUP BY a.product_id, a.option_id;

应该可以——我是凭记忆写的 :) 如果不行——试着调整一下。 您可以将其导出为 CSV。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-09-27
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多