2016-04-29 55 views
0

共有されていないすべてのデータを選択するにはどのようにクエリを変更しますかReportID一致しないデータを比較して表示する

のでreport.ReportID = Read_Report.ReportID

と一致して、report

クエリ

$this->db->select('report.Report_Name, report.ReportDate, report.ReportID') 
      ->from('report') 
      ->join('Read_Report', 'report.ReportID = Read_Report.ReportID') 
      ->where('Read_Report.StaffID', $this->session->userdata("StaffID")); 
     $result = $this->db->get(); 
     return $result->result(); 
+0

どのコードでsqlを翻訳していますか? – scaisEdge

+0

申し訳ありませんが、私はcodeigniter – Beep

+0

を使用しています。これは選択文なので、raw SQLを送信できますか? –

答えて

0

私はあなたの特定の構文を知らない

SELECT report.Report_name, report.ReportDate, report.ReportId 
FROM report LEFT JOIN Read_Report ON report.ReportId=Read_Report.ReportId 
WHERE Read_Report.ReportId IS NULL 

:だからあなたのクエリは、このようにする必要があります)あなたは、私はSQLのいずれかの味に動作するものに固執する使用しているデータベース

を知りませんquerybuilderしかし、私はあなたがleftJoinメソッドとチェックする方法があると思う列がnullの場合

ところで、テーブルと列の名前に一意の命名とケーススキームを固執してください。

+0

おかげで、Ilはこれをフィダルにします。私はそれを働かせることができます参照してください。私はまだ私のユーザにデータを表示するために '$ this-> session-> userdata(" StaffID ")'が必要であると思います – Beep

0

から一致しないものをすべて取得していないすべての'report.Report_Name, report.ReportDate, report.ReportID' は多分これは動作しますか?何がやりたいことは、通常、これは左に参加し、右のテーブルの外部キーの句(一部のデータベースが交差functionnalityを提供しますが、私がnullで行われ、2つのセットの間の差です

$this->db->select('report.Report_Name, report.ReportDate, report.ReportID') 
     ->from('report') 
     ->join('Read_Report', 'report.ReportID = Read_Report.ReportID') 
     ->where('Read_Report.StaffID !=', $this->session->userdata("StaffID")); 
    $result = $this->db->get(); 
    return $result->result(); 
関連する問題