mysql - 如何组合两个 MySQL 查询以在一个表行中显示结果

标签 mysql

我有两个单独的查询,在两个表中显示结果。我想在一张表中显示结果。如何让它显示这些数据?

所以在第一行我想要

  • 2
  • GE 32,768 kHz SMD
  • 12,87112
  • 谐振器 kwarcowy KX-327S 32,768 kHz 12.5pF,20/-0,042/50K
  • Rezonatory filtry i źródła częstotliwości > Rezonatory kwarcowe(此处添加新行而不是“-”)
  • 12195
  • 1
  • 1
  • 1.190000

这就是现在的样子。我想添加另一列“Nazwa kategorii

enter image description here

<?php 
    $result = mysql_query('SELECT 
        prodlang.id_product AS "idprod", 
        prodlang.name AS "nazwa", 
        prod.price AS "cena", 
        prod.minimal_quantity AS "moq", 
        prod.ean13 AS "nazwag", 
        prod.reference AS "kod", 
        prod.quantity AS "ilosc",
        prod.active AS "aktywny" 
        FROM pstest_product_lang prodlang
        INNER JOIN pstest_product prod
        ON prodlang.id_product=prod.id_product
        limit 10');

        while ($row = mysql_fetch_array($result)) echo('<tr><td>'.$row['idprod'].'</td><td>'.$row['kod'].'</td><td>'.$row['nazwag'].'</td><td>'.$row['nazwa'].'</td><td> - </td><td>'.$row['ilosc'].'</td><td>'.$row['aktywny'].'</td><td>'.$row['moq'].'</td><td>'.$row['cena'].'</td></tr>');

?>
<?php 
    $results = mysql_query('SELECT 
        prodcat.id_product AS "idprod", 
        catlang.name AS "nazwacat" 
        FROM pstest_category_product prodcat
        INNER JOIN pstest_category_lang catlang
        ON prodcat.id_category=catlang.id_category
        ORDER BY idprod
        limit 10');

        while ($row = mysql_fetch_array($results)) echo('<tr><td>'.$row['idprod'].'</td><td>'.$row['nazwacat'].'</td></tr>');                                               
?>

最佳答案

您可以将group_concatgroup by结合使用。有关更多信息,请参阅 group by文档。我更改了您的查询并希望它有效:

SELECT 
        prodlang.id_product AS "idprod", 
        prodlang.name AS "nazwa", 
        prod.price AS "cena", 
        prod.minimal_quantity AS "moq", 
        prod.ean13 AS "nazwag",
        t2.nazwacat as "nazwacat", 
        prod.reference AS "kod", 
        prod.quantity AS "ilosc",
        prod.active AS "aktywny"
        FROM pstest_product_lang prodlang
        INNER JOIN pstest_product prod
        ON prodlang.id_product=prod.id_product
        join (
        SELECT 
        prodcat.id_product AS "idprod", 
        Group_concat(catlang.name) AS "nazwacat" 
        FROM pstest_category_product prodcat
        INNER JOIN pstest_category_lang catlang
        ON prodcat.id_category=catlang.id_category
group by prodcat.id_product
) t2 on t2.idprod=prodlang.id_product
        limit 10

关于mysql - 如何组合两个 MySQL 查询以在一个表行中显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924401/

相关文章:

php - 通过 PHP/Html 和 sql 更新 MySQL 条目

mysql - 如何在mysql中保存一棵树?

mysql group_concat order by utf8

php - 从 Laravel 中的 mysql 表中检索值

mysql - SELECT 列与 GROUP BY 列不同

mysql - 在 Windows 中查看数据导入/恢复 MySQL 的进度

java - JPA级联不插入外键

php - 如何使用 PDO 将空字符串插入日期列?

php - Mysql:如何修剪和比较数据库字段与字母数字值?

c# - 一张表或多张表,数据只有一列发生变化