mysql - 连接查询和分组以显示结果

标签 mysql sql

我有以下查询,返回 9000 条记录:

SELECT Table1.id
, Table1.value 
, Table2.client_id 
, Table1.id_key
, Table3.id
, Table3.title
FROM Table1
LEFT JOIN Table2 ON Table2.id = Table1.Table2_id
LEFT JOIN Table3 ON Table1.id_key = Table3.id
WHERE Table2.orderType = "Grace"
AND Table2.id IN (7364)

由此,我需要创建一个标题为 Table1.value 的报告,然后它将显示所有 Table3.id、Table3.title

我已经尝试过:

SELECT Table1.id  
    , Table1.value 
    , Table2.client_id 
    , Table1.id_key 
    , Table3.id 
    , Table3.title
    FROM 
    Table1
    LEFT JOIN Table2 ON Table2.id = Table1.Table2_id
    LEFT JOIN Table3 ON Table1.id_key = Table3.id
    WHERE Table2.orderType = "Grace"
    AND Table2.id IN (7364)
    GROUP BY Table1.value

但这会将结果减少到 74,这没关系,但我在这些标题下看不到任何其他内容......我能做什么。

最佳答案

很抱歉将其纳入答案,但到目前为止我还没有足够的代表来发表评论。

我的理解是,您正在尝试获取与表 1 中的行相关的表 3(几行)的值。怎么样:

您的第一个查询没有 group by 和 add order by table1.value ASC,[another order here] ,然后在您的代码中仅显示标题(如果是新的),如下所示

   $old_header=""; //outside 
   while ($row=mysql_fetch_assoc($query)){
     if ($old_header!=$row['value']){  //table1.value 
         $old_header=$row['value'];
         echo "<h1>Category: ".$old_header."</h1>";
     } ...

分组依据将合并具有相同 table1.value 的所有查询,这不是您想要的。

关于mysql - 连接查询和分组以显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6118292/

相关文章:

mysql - 如何在 MySQL *Prepared* 存储过程中使用多个参数

java - @ManyToOne 与数据库中不存在子项的父项类型相同

sql - 仅使用 SQL 将 Blob 从 MySQL 数据库导出到文件

sql - SQL Server存储过程错误: “A severe error occurred on the current command. the results if any should be discarded”

sql - 数据仓库多维数据集中应用了哪些数据结构和算法?

mysql - 任何人都可以帮助我将 sql 查询转换为 Magento 客户模型表单吗?

python - 使 SQL Alchemy 表达式从不同表的列返回值以进行过滤

mysql - MySQL 子查询结果无效

sql - Oracle SQL 查询 - 使用 MAX() 函数时加入

mysql - MySQL 创建函数中的语法错误