選択

2017-01-27 3 views
0

enter image description here選択

に重複したレコードを取得し、私は4つのテーブルがあります。

clients, pricelist, result and result_details 

を私はtransaction_id, name, test_name and resultがそれに表示されるフォームを生成します。私はnameのための選択をしましたが、test_nameresultの選択を理解することはできません。

私はこの[PDF] [5]

$result=mysqli_query($con,"SELECT r.transaction_Id,r.client_id,r.result_id,r.test_id,t.test_id,t.result,p.test_id,p.Name,c.Id,c.surName,c.firstName,c.dob,c.Gender FROM result r 
           JOIN result_details t 
           on r.test_id = t.test_id 
           left JOIN pricelist p ON r.test_id = p.test_id 
           left JOIN clients c ON r.client_id = c.Id")or die(mysqli_error()); 


$r=mysqli_query($con,"SELECT DISTINCT id,firstName,surName,Gender,dob FROM clients join result WHERE result.client_id=clients.Id")or die(mysqli_error()); 

while ($row = mysqli_fetch_array ($r)) { 

    $id=$row['id']; 
    $clientfirstname=$row['firstName']; 
    $surname=$row['surName']; 
    $gender=$row['Gender']; 
    $dob=$row['dob']; 
    $t=mysqli_query($con,"SELECT transaction_Id FROM transaction WHERE clientId=$id") or die(mysqli_error()); 

    while ($test = mysqli_fetch_array ($t)) { 
     $transaction=$test['transaction_Id']; 
     $m=mysqli_query($con,"SELECT test_id,result_id from result where client_id=$id")or die(mysqli_error()); 
     while ($q = mysqli_fetch_array ($m)) {  
      $test_id=$q['test_id']; 
      $result_id=$q['result_id']; 
      $z=mysqli_query($con,"SELECT Name from pricelist where test_id=$test_id")or die(mysqli_error()); 
      while ($x = mysqli_fetch_array ($z)) {  
       $name=$x['Name']; 
       $query=mysqli_query($con,"SELECT result from result_details where result_id=$result_id")or die(mysqli_error()); 
       while ($query1 = mysqli_fetch_array ($query)) {  
        $result=$query1['result']; 
       } 
      } 
     } 
    } 
}      
+0

出力を表示できますか? –

+0

DISTINCTを使用して重複したレコードを削除する... SELECT DISTINCT r.transaction_Id ....と同様に –

+0

私はtable.iの画像を別の選択で試してみたが、良い方法ではないmysqlコマンドを書くの私の投稿を参照してください私は別の選択で編集しました – bouba

答えて

0

のようなものがちょうど追加したい:

GROUP BY AcctNo, OrderDate, Charge 
HAVING COUNT(1) = 1 

をGROUPグループによってすべての行を同じフィールド1、フィールド2、...とチャージでHAVING COUNT(1)= 1は、ただ1つの前駆体があった行だけを示しています。私はそれが動作することを願って

+0

重複を探しているときcount(1)> 1であるのですか? –

関連する問題