从一个表中读取以获取字段然后使用该字段信息来查询并从另一个字段获取信息需要很长时间

时间:2012-01-17 14:06:50

标签: c# .net mysql sql ado.net

我正在编写一个桌面应用程序,它连接到远程服务器上的MySQl数据库。 我在MySQL数据库中有两个表。

一个名为Client的表包含Contacts Id和其他基本联系信息。

另一个表名为Property,包含属性类型和地址信息,还有一个Client_Id字段,与Client表中的Id字段相同。

目前我打开了与数据库的连接。

然后我使用Select查询从Property表中获取其字段调用PropertyType ='House'的所有属性的List。

然后我使用该列表并使用另一个SELECT查询来枚举它,该查询根据列表中的Id来获取每个客户端。

然后我关闭连接。 所以我只打开和关闭连接一次。

这需要很长时间才能完成400条记录,我只是在学习mySQL并确信有更好的方法。任何人都可以提供任何建议,如何查询表以获取符合特定条件的所有字段,然后使用字段(Client_Id)搜索另一个表,以获得客户端基于他们的Id匹配Client_Id?

2 个答案:

答案 0 :(得分:2)

您可以使用

之类的内容将其减少为单个查询
SELECT * FROM Client WHERE Client_id IN (SELECT Client_id FROM Property WHERE PropertyType='House');

此外,请确保您已准备好所有指数。

答案 1 :(得分:2)

根据您要查看的数据,尝试以下内容:

select p.address, c.name, c.phone
from Property p
join Clients c on p.client_id = c.id
where p.PropertyType = 'House'