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

Delphi 如何使用zquery从Firebird数据库的两个表中选择列?,delphi,firebird,zeos,Delphi,Firebird,Zeos,我想在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 T

我想在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指南,但找不到。我得到的只是这个:但我的一些问题仍然没有得到回答

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


我可以在上面使用什么SQL代码?

您的语法无效

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的教程。谷歌可以提供帮助。

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

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

非常感谢。

“显示错误”没有任何意义,除非您告诉我们错误是什么。我不知道你需要解释多少次。在这里提问时要具体。(您的语法无效;您应该在谷歌上搜索基本SQL教程。)编辑了我的问题。我读过一些基本的SQL教程,但问题是我找不到适用于ZEOS的。我不知道哪个sql命令会对它起作用。我只想在一个TDdgrid中显示两个表中的列。事实上这是宙斯并不重要。谷歌
SQL教程
。我再次编辑了我的问题。我想在表1和表2中显示一些列。决定你想问什么,然后问它。一次又一次地改变这个问题会让人很难回答。击中一个移动的目标要困难得多,而且在回答问题后改变问题会使上一个问题的答案看起来很愚蠢(而且是错误的)。非常感谢您的大力帮助和指导。就我个人而言,我更喜欢SQL-92
JOIN
语法,而不是SQL-89变体)。@Mark:我也是,但海报上没有提供加入的基础信息。这是一个持续的问题与这张海报(遗漏必要的信息);看看他的其他一些问题。