【发布时间】:2017-01-18 18:35:38
【问题描述】:
好的。我认为我已经引用了THIS 其他与我的情况类似的问题。但我会添加我的情况以及到目前为止我已经尝试过的内容。
Ticket Table
*-------------------------------*
|t_id | repair_id | customer_id |
| 1 | 10 | 11 |
| 2 | 11,12 | 12 |
| 3 | 13,14 | 13 |
| 4 | 15,16 | 14 |
*-------------------------------*
Repair Table
*-----------------------------------------------------*
|repair_id | ticket_id | device_type | repair_status |
| 10 | 1 | laptop | open |
| 11 | 2 | tablet | open |
| 12 | 2 | phone | open |
| 13 | 3 | phone | open |
| 14 | 3 | tablet | open |
| 15 | 4 | laptop | open |
| 16 | 4 | laptop | open |
*-----------------------------------------------------*
Customer Table
*-----------------------------*
|customer_id | f_name | l_name |
| 11 | John | Hughes |
| 12 | Julia | Brown |
| 13 | Tim | Duncan |
| 14 | Tony | Price |
*-----------------------------*
我希望结果表看起来像这样:
Results Table
*----------------------------------------------------------*
|customer_name | Repair_# | device_type | repair_status |
| John Hughes | 10 | laptop | open |
| Julia Brown | 11,12 | tablet,phone | open |
| Tim Duncan | 13,14 | phone, tablet | open |
| Tony Price | 15,16 | laptop, laptop | open |
*----------------------------------------------------------*
这是我尝试过的查询:
$query = "SELECT customers.id, customers.f_name, customers.l_name, device_repairs.repair_id, device_repairs.ticket_id, ";
$query .= "device_repairs.device_type,device_repairs.repair_type, device_repairs.ticket_status, ";
$query .= "FROM tickets ";
$query .= "LEFT JOIN customers ON tickets.customer_id = customers.id ORDER BY device_repairs.ticket_id DESC";
我知道我的查询不正确,但我不太确定如何设置 INNER JOIN。
修订版
所以经过一些审查。我添加了一个修改后的表格结构。
Ticket Table
*--------------------------------------------------------------------*
|t_id|repair_id|cust_id|cust_fname|cust_lname|device_type|repair_stat|
| 1 | 10 | 11 | John | Hughes | Laptop | open |
| 2 | 11 | 12 | Julia | Brown | Tablet | open |
| 2 | 12 | 12 | Julia | Brown | Phone | open |
*--------------------------------------------------------------------*
Repair Table
*-----------------------------------------------------*
|repair_id | ticket_id | device_type | repair_status |
| 10 | 1 | laptop | open |
| 11 | 2 | tablet | open |
| 12 | 2 | phone | open |
| 13 | 3 | phone | open |
| 14 | 3 | tablet | open |
| 15 | 4 | laptop | open |
| 16 | 4 | laptop | open |
*-----------------------------------------------------*
Customer Table
*-----------------------------*
|customer_id | f_name | l_name |
| 11 | John | Hughes |
| 12 | Julia | Brown |
| 13 | Tim | Duncan |
| 14 | Tony | Price |
*-----------------------------*
修改后的结果表如下:
Results Table
*----------------------------------------------------------*
|customer_name | Repair_# | device_type | repair_status |
| John Hughes | 10 | laptop | open |
| Julia Brown | 11 | tablet | open |
| Julia Brown | 12 | | phone | open |
*----------------------------------------------------------*
希望这会有所帮助并且更有意义。
我创建了这个查询,以便正确输出结果表。感谢您的所有意见。
$sql = "SELECT customers.id, customers.f_name, customers.l_name, device_repairs.repair_id, device_repairs.device_type, ";
$sql .="device_repairs.repair_type, device_repairs.ticket_status, device_repairs.ticketopen ";
$sql .="FROM customers, device_repairs WHERE customers.id = device_repairs.customer_id ORDER BY device_repairs.ticketopen DESC";
【问题讨论】:
-
也发布您从该查询中得到的信息。什么让您对 INNER JOIN 感到困惑?
-
这是我从查询中得到的:警告:mysqli_fetch_assoc() 期望参数 1 是 mysqli_result,布尔值给定
-
好的,您可能会注意到关于 SO 的大约 25 000 个问题带有确切的错误消息。检索错误(始终检查您的
mysqli_query函数的结果)并将其发回。
标签: mysql