简体   繁体   English

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

[英]How to combine two MySQL queries to show results in one table row

I have two separate queries showing results in two tables. 我有两个单独的查询,在两个表中显示结果。 I want to show result in one table instead. 我想在一个表中显示结果。 How to make it to show this data? 如何使其显示此数据?

So in first line i want to have 所以我想在第一行

  • 2 2
  • GE 32,768 kHz SMD GE 32,768 kHz贴片
  • 12,87112 12,87112
  • Rezonator kwarcowy KX-327S 32,768 kHz 12.5pF, 20/-0,042/50K Rezonator夸科威KX-327S 32,768 kHz 12.5pF,20 / -0,042 / 50K
  • Rezonatory filtry i źródła częstotliwości > Rezonatory kwarcowe ( new line added here instead of "-" ) 区域性filtry iźródłaczęstotliwości>区域性kwarcowe( 在此处添加新行,而不是“-”
  • 12195 12195
  • 1 1个
  • 1 1个
  • 1.190000 1.190000

This is how it looks now. 这就是现在的样子。 I want to add another column " Nazwa kategorii " 我想添加另一列“ Nazwa kategorii

在此处输入图片说明

<?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>');                                               
?>

You can use group_concat with group by . 您可以将group_concatgroup by一起使用。 For mor info see group by doc. 有关更多信息,请参阅文档分组 I change your query and hope it work : 我更改了您的查询,希望它能正常工作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM