如何使用zquery从Firebird数据库中的2个表中选择列?

时间:2013-05-05 04:30:26

标签: delphi firebird zeos

我想在单个数据库文件上显示来自2个表的TDbgrid数据。我试过写sql语句,如:

select "Client", "Address", "Balance" from "table1"
and "Payment" from "table2"

但它始终显示此错误

SQL Error: Dynamic SQL Error DQL Error code = -104 Token Unknown - line 2,
column1 and.Error -104.Invalid token The SQL: select "Client", "Address", "Balance"
from "table1"
and "Payment" from "table2" 

我不知道是不可能还是我在编写代码时遇到错误,或者是我需要修改的TDbgrid。我搜索了一个zeos sql指南,但我找不到一个。我得到的只是:http://www.intitec.com/varios/A_ZEOS_basics_tutorial_not_only_for_firebird.pdf但我的一些问题仍然没有答案。

我正在使用firebird数据库2.5和delphi 7。

我可以使用哪些SQL代码?

2 个答案:

答案 0 :(得分:6)

您的语法无效。

SELECT * FROM table1, table2

但是,上述内容也没有意义,因为您从两个单独的表中选择每个列和行,而无法连接这两个表。

Table1
ColumnA    ColumnB
=======    =======
Nonsense   Here
Orange     Noise

Table2
ColumnC    ColumnD
=======    =======
Horse      Radish
No         Sense

SELECT * FROM Table1, Table2

结果:

ColumnA    ColumnB    ColumnC    ColumnD
=======    =======    =======    =======
Nonsense   Here       Horse      Radish
Orange     Noise      No         Sense

即使在编辑之后,查询也没有意义。

SELECT Table1.ColumnA, Table1.ColumnB, Table2.ColumnC, Table2.ColumnD
FROM Table1, Table2

仍会产生相同的结果。

你真的应该寻找有关数据库编程和SQL的教程。谷歌可以提供帮助。

答案 1 :(得分:0)

我的SQL语句中只有一些无效的语法。这解决了我的问题

SELECT Table1.ColumnA, Table1.ColumnB, Table2.ColumnC, Table2.ColumnD
FROM Table1, Table2

非常感谢。