我必须从表中读取一组行(比如说A),每行包含一个唯一的id(比如id_value)。
现在使用这个id_value我必须从另一个表中获取行(比如B)。
我正在使用java,所以我的代码是:
ResultSet rs= [ Code to get rows from table A ] ;
while(rs.next())
{
ResultSet rs2= [Code to get rows from table B using the id_value from table A using rs.getString("id_value");];
}
上述查询如果当然行为缓慢,因为表A中的行数一次可以超过500个。
是否有人知道更好,更快的解决此问题或如何在单个查询中执行此操作?
答案 0 :(得分:3)
您应该阅读SQL中的联接:http://en.wikipedia.org/wiki/Join_(SQL)
你想沿着这些方向做点什么:
SELECT a.value_1, a.value_2, b.value_1, b.value_2
FROM table_a AS a
LEFT JOIN table_b AS b
ON a.id_value = b.table_a_id
WHERE a.value_1 = "something"
但是,如果您有实际查询,那么帮助您会更容易。
答案 1 :(得分:1)
您可以使用左连接:
SELECT table1.*, table2.* from table1
LEFT JOIN table2 ON table2.id = table1.table2id
WHERE table1.ID = 123;