【问题标题】:mySQL select with PHP - left join使用 PHP 选择 mySQL - 左连接
【发布时间】:2014-02-12 20:26:56
【问题描述】:

我有两个表“all”和“jdetails”。我在所有工作的表上有一个现有的选择查询。如果有的话,我想从 jdetails 表中添加一些额外的数据。

所有表格:

judge, year, ...

jane doe, 2012

john doe, 2011

jdetails 表:

name, designation,...

jane doe, level 1

jane doe, level 5

john doe, special

如何更改下面的查询以包含每位法官(全部)的“指定”(来自 jdetails)?

我认为左连接是解决方案,但我需要考虑 where 子句。另外,我绝对必须在下面得到这个查询的结果,但是如果它存在,则添加来自 jdetails 表的数据。

此外,我希望将其列为单个值的每个 all.judge 可以有多行 (jdetails.name) 名称。例如--jane doe 的指定值为“1 级 5 级”。

我会加入 all.judge=jdetails.name

当前查询:

$rows = $my->get_row("SELECT all.judge, `year`, `totlevel_avg`, `totlevel_count`,   `genrank`, `poprank`, `tlevel_avg`, `tlevel_count`, `1level_avg` as `onelevel_avg`, `1level_count` as `onelevel_count`, `2level_avg` as `twolevel_avg`, `2level_count` as `twolevel_count`, `3level_avg` as `threelevel_avg`, `3level_count` as `threelevel_count`, `4level_avg` as `fourlevel_avg`, `4level_count` as `fourlevel_count`, `PSGlevel_avg`, `PSGlevel_count`, `I1level_avg`, `I1level_count`, `I2level_avg`, `I2level_count`, `GPlevel_avg`, `GPlevel_count`, `states` from `all` where `id` ='{$term}'");

非常感谢任何帮助。

【问题讨论】:

    标签: php mysql join subquery


    【解决方案1】:

    我没有在你的SELECT 声明中包含你的所有内容,我只是用ams.* 总结了它。但是下面将all 表链接到jdetails 表,然后将指定组合到一个字段中。然后我将结果包装在一个外部查询中,该查询将您需要的其余字段提取到 all 表 (SQL Fiddle) 中:

    SELECT ams.*, am.Desigs
    FROM 
    (
      SELECT a.judge, GROUP_CONCAT(j.designation SEPARATOR ', ') AS Desigs
      FROM `all` AS a
      INNER JOIN jdetails AS j ON a.judge = j.name
      GROUP BY a.judge
    ) AS am 
    INNER JOIN `all` AS ams ON am.judge = ams.judge
    

    【讨论】:

      【解决方案2】:

      这里有一个可以帮助你的例子:

      `SELECT table1.column_name(s),table2.column_name(s) FROM table1 
      LEFT OUTER JOIN table2 ON table1.column_name=table2.column_name
       AND table1.column_name='Parameter'`
      

      表1是all,表2是jdetails

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 2012-03-31
        • 2020-12-07
        相关资源
        最近更新 更多