我正在编写一个桌面应用程序,它连接到远程服务器上的MySQl数据库。 我在MySQL数据库中有两个表。
一个名为Client的表包含Contacts Id和其他基本联系信息。
另一个表名为Property,包含属性类型和地址信息,还有一个Client_Id字段,与Client表中的Id字段相同。
目前我打开了与数据库的连接。
然后我使用Select查询从Property表中获取其字段调用PropertyType ='House'的所有属性的List。
然后我使用该列表并使用另一个SELECT查询来枚举它,该查询根据列表中的Id来获取每个客户端。
然后我关闭连接。 所以我只打开和关闭连接一次。
这需要很长时间才能完成400条记录,我只是在学习mySQL并确信有更好的方法。任何人都可以提供任何建议,如何查询表以获取符合特定条件的所有字段,然后使用字段(Client_Id)搜索另一个表,以获得客户端基于他们的Id匹配Client_Id?
答案 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'