Delphi で SQL クエリを作成しようとしていますが、うまくいきません。
2 つのテーブルがあり、最初のテーブルには個人データが保持され、2 番目のテーブルには購入した商品に関する情報が保持されます。
2 つのテーブルをWHERE
句で接続すると、クエリが正常に機能します (私のキーは ですperson_id
)。
しかし、個人データがなく、誰かが商品を購入しただけで表示されないレコードをクエリに追加したいと考えています。
したがって、個人情報がないレコードでは、空の文字列または null 値が必要です。
1 つの SQL クエリで実行できますか?
編集: これは作業バージョンですが、これには最初のテーブルに関連しない 2 番目のテーブルの値は含まれていません。
Query1.SQL.Add ('SELECT idcard, vnev, knev, kapcs, ');
Query1.SQL.Add ('bsz, bt, kidate, ervvege, alkalmak FROM "'+adathely+'", "'+berlethely+'" ');
Query1.SQL.Add ('WHERE ("'+adathely+'".idcard = "'+berlethely+'".idcard) ');
//from here only filtering occurs
Query1.SQL.Add ('AND kidate >= "'+IntToStr(DateToInt(filterdate1.Text))+'" ');
Query1.SQL.Add ('AND ervvege <= "'+IntToStr(DateToInt(filterdate2.Text))+'" ');
Query1.SQL.Add ('AND CAST(bsz AS CHAR(6)) LIKE '''+filterbsz.Text+'%'' ');
Query1.SQL.Add ('AND ((LOWER(vnev) LIKE ''%'+filtername.Text+'%'') OR (LOWER(knev) LIKE ''%'+filtername.Text+'%'')) ');
Query1.SQL.ADD ('ORDER BY vnev ASC ');
簡単な説明: table1 は「adathely」 table2 は「berlethely」 両方のテーブルには「idcard」フィールドが含まれていますが、table2 にはこのフィールドに値を持たないレコードがありますが、stringgrid にも表示したいと思います。