【问题标题】:What is the error in my query? I am trying to select data from multiple tables我的查询有什么错误?我正在尝试从多个表中选择数据
【发布时间】:2018-04-21 06:36:53
【问题描述】:

我正在使用一个包含许多表的 MySQL 数据库。我有 4 张桌子:

site_location:

siteID(PRIMARY KEY)
locationName
lat
long

员工:

employeeID(PRIMARY KEY)
employeeName

inspection_info:

inspectionID(PRIMARY KEY)
inspectionDate
employeeID

inspection_site:

inspectionID(PRIMARY KEY)

siteID(PRIMARY KEY)

我在 inspection_site 表中有值的地方

siteID 1 | inspectionID 1
siteID 1 | inspectionID 2

所以我的查询必须同时选择这两个值,但这不会发生它单独选择第一个或第二个

SQL 查询:

$sql = $wpdb->prepare("select 
           l.locationName
           , n.inspectionDate
           , e.employeeName
      from site_location l
      LEFT  
      JOIN inspection_site s
        on l.siteID = s.siteID
      LEFT
        JOIN inspection_info n
        on n.inspectionID = s.inspectionID
        LEFT
      JOIN employeeName e
        on n.employeeID=e.employeeID
         where 
        l.locationName = %s
        AND 
        e.employeeID = %d
        AND 
        n.inspectionID = %d
       ",$site_name,$soldier_name, $inspection_date);

     $query_submit =$wpdb->get_results($sql, OBJECT);

【问题讨论】:

  • 当您在 where 部分为左连接表添加条件时,您实际上进行了 INNER JOIN,因此将左连接表中的条件移动到 from 部分中的左连接语句
  • 并确保l.locationName = %s 具有该参数的实际注册表
  • @JorgeCampos 关于第一条评论我不明白你的答案,第二条评论 l.locationName 得到正确的参数
  • 为了清楚起见,您谈论的是site_locaion,但您的查询实际上使用的是army_site_location,所以我认为它是一样的,对吧?
  • 是一样的

标签: mysql wordpress join


【解决方案1】:

我解决了问题

这是我指定要匹配的 SQL 查询中的 WHERE

  • 位置名称
  • 员工 ID
  • inspectionID

inspectionID 字段中,它包含 emplyee 表的关系,因此它选择与该 ID 对应的单个值。

所以解决方案是在 WHERE 中为 locationName 广告条件

sql查询:

$sql = $wpdb->prepare("select 
       l.locationName
       , n.inspectionDate
       , e.employeeName
  from army_site_location l

  JOIN inspection_site s
    on l.siteID = s.siteID

    JOIN inspection_info n
    on n.inspectionID = s.inspectionID

  JOIN employee e
    on n.employeeID=e.employeeID
    where 
    l.locationName = %s"
    ,$site_name);

 $query_submit =$wpdb->get_results($sql, OBJECT);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2018-05-27
    • 2011-05-12
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多