【问题标题】:How to join 4 tables in mysql?如何在mysql中加入4个表?
【发布时间】:2023-03-23 09:42:01
【问题描述】:

我创建了一个用于搜索会议日期的表单。默认表单显示仅显示今天的数据 = now()。我如何查询搜索会议日期包括 4 个表(每个表都有一个相同的列:创建

【问题讨论】:

  • 使用INNER JOIN 语句。阅读这里如何使用:stackoverflow.com/questions/14673338/…
  • 把你的表结构放在这里
  • 您加入 4 个表的方式与加入 2 个表的方式相同。只需添加更多 INNER JOIN 子句,列出每个表以及与之前表的连接条件。
  • $view=mysql_query("SELECT * FROM tb_prod INNER JOIN tb_assy ON tb_prod.creadate=tb_assy.creadate INNER JOIN tb_ppc_whs ON tb_assy.creadate=tb_ppc_whs.creadate INNER JOIN tb_ppc_status ON tb_ppc_status=tb_ppc_status。创建 WHERE 创建 LIKE DATE_FORMAT('".$_GET['tgl1']." 00:00:00','%Y-%m-%d')") 或死 (mysql_error()); --但它会导致模棱两可的“创建”我该如何解决这个问题?
  • 我知道这可能听起来很粗鲁,但我建议不要编写该查询。您似乎不知道数据库是如何工作的以及表是如何关联的。给自己买一本关于 SQL 的书或教程,并至少学习一些基础知识。然后才开始在您的数据库上应用它。

标签: php mysql


【解决方案1】:

试试下面的代码..

SELECT M.*,A.*,W.*,D.* FROM Mch as M
    INNER JOIN Assy as A ON M.creadate=A.creadate 
    INNER JOIN WHS as W ON A.creadate=W.creadate 
    INNER JOIN DLV as D ON W.creadate=D.creadate

【讨论】:

    【解决方案2】:

    正如@Barmar 所说,您只需添加更多INNER JOIN

    所以它最终会是这样的:

    SELECT * FROM Mch 
        INNER JOIN Assy ON Mch.creadate=Assy.creadate 
        INNER JOIN WHS ON Assy.creadate=WHS.creadate 
        INNER JOIN DLV ON WHS.creadate=DLV.creadate
    

    【讨论】:

    • 我尝试过使用内连接,但数据总是只以 Mch 表形式显示,而不是以所有表形式显示。
    • 我认为您的问题可能出在您在 php 中显示表格的方式上,而不是在 mysql 查询本身中。也许你应该向我们展示你是如何做到的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多