【问题标题】:Table joining using PHP MySql [closed]使用 PHP MySql 加入表 [关闭]
【发布时间】:2020-12-10 12:19:46
【问题描述】:

我有这两个表,我想加入这两个表,并通过第二个表的“左和右”右列中的 ID 从第一个表中获取金额详细信息

** 编辑:

您可以发布文字而不是图片:

id   email  amount
  1  jk001  3000
858  jkS25  1500
869  jkS26  1500
860  jkS27  1500
861  jkS28  1500
862  jkS29  750
863  jkS30  760
864  jkS31  1500
865  jkS32  1500
866  jkS33  750
867  jkS34  760
868  jkS35  3000
869  jkS36  3000

留作练习(Sam)对第二张图片做同样的事情。

【问题讨论】:

  • 您能不能解释的更清楚些?很难理解你需要做的连接,你能举一个期望结果的例子吗?
  • 我有这两张表,ID 像 'jk xxx' 。第一个表包含所有 ID 的金额详细信息,第二个表包含子 ID 的左右(二叉树),现在我需要从第一个表中获取左右 ID 的金额详细信息.. 谢谢! @NicholasGoodingRios
  • 为了改善问题,他们(SO)发明了edit按钮......

标签: php mysql inner-join


【解决方案1】:

为了能够在两个表之间创建一个连接,允许您从第一个表中提取第二个表中左右 id 的数量值,您需要 LEFT JOIN 两次将每个连接重命名为第一个表为lara(或您认为合适的任何其他名称)分别表示与左右id 的关系。像这样的:

SELECT 
    `origin`.`id`, 
    `origin`.`amount`, 
    `origin`.`userid`, 
    `origin`.`left1`, 
    `la`.`amount` AS leftAmount, 
    `origin`.`right1`, 
    `ra`.`amount` AS rightAmount 
FROM `table2` AS origin

LEFT JOIN 
    `table1` AS la 
ON `origin`.`left1`=`la`.`email`

LEFT JOIN 
    `table1` AS ra 
ON `origin`.`right1`=`ra`.`email`

我不得不假设表的名称并将leftright 列重命名为left1right1,因为这些词在我的MySQL 数据库中保留。您还需要确保语法对于您的数据库是正确的,我使用的是 MySQL v8.0.15 的语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 2016-08-03
    • 2014-09-25
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多