私は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をセットアップするかについてはあまりよく分かりません。
REVISION
ので、レビューにつきいくつかの後に。私は改訂された表の構造を追加しました。
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、ブール値が与えられていることを期待します –
OK、正確なエラーメッセージがあるので、約25 000の質問があります。エラー(mysqli_query関数の結果を常にチェックしてください)を取得し、それをポストしてください。 –