我正在尝试在 Delphi 中编写 SQL 查询,但没有运气。
我有两张表,第一张保存个人数据,第二张保存有关购买商品的信息。
当我用WHERE
子句连接两个表时,我的查询工作正常(我的键是person_id
)。
但我想在我的查询中添加没有个人数据的记录,只是有人购买了商品,他们不显示。
因此,在那些没有任何个人信息的记录中,我需要有空字符串或空值。
是否可以在一个 SQL 查询中完成?
编辑:这是工作版本,但这不包含与第一个表无关的第二个表的值。
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 中显示它们。