【问题标题】:Retrieving Data from Multiple Tables base on id根据 id 从多个表中检索数据
【发布时间】:2014-01-02 05:45:23
【问题描述】:

使用 php,我试图从 2 个不同的表中获取数据:

表:产品 +-------+---------+----------+ |代码 |产品 |类别 | +-------+---------+----------+ | 1 |牛仔裤 |男士| 高分辨率照片| CLIPARTO +-------+---------+----------+ | 2 |衬衫 |男士| 高分辨率照片| CLIPARTO +-------+---------+----------+ 表:颜色 +-------+----------+ |代码 |颜色 | +-------+----------+ | 1 |蓝色 | +-------+----------+ | 1 |黑色 | +-------+----------+ | 1 |白色 | +-------+----------+ | 2 |黄色 | +-------+----------+ 我想要的结果应该是: +-------+---------+----------+-------- -+ |代码 |产品 |类别 |颜色 | +-------+---------+----------+-------- -+ | 1 |牛仔裤 |男士| 高分辨率照片| CLIPARTO黑、蓝、白| 高分辨率照片| CLIPARTO +-------+---------+----------+-------- -+ | 2 |衬衫 |男士| 高分辨率照片| CLIPARTO黄色 | +-------+---------+----------+-------- -+

请指导我。

提前致谢。

维克拉姆

【问题讨论】:

  • 嗨 Vijay - 抱歉我忘了提 - 它是 mysql。
  • 你尝试过什么了吗?
  • 我尝试了内连接和左连接,但得到的结果是 pcode 1 的 3 行
  • 我建议您编辑原始问题以添加此信息,以及行的外观(当它不起作用时)。不幸的是,我无法帮助解决这个问题,但这会让看到问题并可以提供帮助的人更愿意这样做。
  • 这里已经讨论过了:stackoverflow.com/questions/7448734/…

标签: mysql inner-join


【解决方案1】:
SELECT p.pcode,product,category,GROUP_CONCAT(colors) as colors
FROM products p JOIN colors c 
ON p.pcode=c.pcode 
GROUP BY product

【讨论】:

    【解决方案2】:

    米海的查询也有效..

    也可以试试这个..

    select p.*, group_concat(colors separator ',') colors from products p left outer join colors c on p.pcode=c.pcode group by p.pcode;
    

    【讨论】:

    • 谢谢大家-我会试试的。再次感谢。
    • 哇!它工作正常 - 但现在我遇到的一个问题是 - 假设 pcode 3 项目没有任何颜色选项 - 它不会显示 pcode 3 的数据:(
    • SELECT p.pcode,product,category,GROUP_CONCAT(colors) as colours FROM products p left outer JOIN colors c ON p.pcode=c.pcode GROUP BY product;试试这个...
    • 是的 - 效果很好 - 哇!!太棒了 - 非常感谢巴拉吉。
    • 很高兴你得到了结果.. :)
    【解决方案3】:

    注意:您可以尝试使用 PDO 或 MySqli 库(链接如下)来运行此 SQL 语句

    你可以试试这个 SQL 语句,我认为它会完成这项工作,但会以你要求的不同方式显示行,试一试:

    SELECT colors.pcode , products.products ,products.category ,  colors.colors
    FROM colors
    INNER JOIN FIRST ON colors.pcode = products.pcode
    

    结果:

    或者,如果您想按照您的要求将工作分开在多个 SQL 语句中:

    SELECT colors FROM colors WHERE pcode = 1
    

    并使用一些 SQL Sattement 获得所有颜色
    然后通过这种方式获取产品和产品类别:

    SELECT product , category FROM products WHERE pcode = 1
    

    还有这样的一些你会得到你需要的一切

    但我更喜欢第一个,因为它更方便快捷。

    链接:

    PDO:

    http://php.net/manual/en/book.pdo.php

    MYSQLI:

    http://www.php.net/mysqli

    祝你有美好的一天:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-02
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多