關(guān)聯(lián)查詢即可實現(xiàn),表1關(guān)聯(lián)表2,條件就是你如何從表1找到表2,關(guān)聯(lián)后可以同時獲取兩個表的所有字段,就可以過濾字段,指定顯示的字段,格式參考:select a.字段,b.genger from 表1 a join 表2 b on a.條件字段=b.條件字段。
成都創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、臨縣網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為臨縣等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
假設(shè)有若干張表tb1、tb2、tb3,查詢各張表中的一些字段,若tb1和tb2中是1對1的關(guān)系,tb2和tb3是1對多的關(guān)系,若要同時查詢tb1、tb2和tb3中的一些字段,對于相同的tb1和tb2對應(yīng)的數(shù)據(jù),可能會有多條查詢的結(jié)果,如果只想查詢tb3中對應(yīng)的某一條數(shù)據(jù),這時候sql該如何去編輯呢?
這時候有兩種思路,第一種,先不查詢tb3中的字段,先去查詢tb1和tb2中的字段,再通過遍歷結(jié)果集去單獨查詢tb3中的數(shù)據(jù),這樣的sql會簡化,但在相同的查詢條件下,用時會增加很多,因為多次查詢數(shù)據(jù)庫會有數(shù)據(jù)庫連接的損耗;第二種,是通過一個sql去直接篩選選出分組,下面我分別列舉oracle和mysql的用法
如果tb3中一個country(國家)對應(yīng)的別名(short_name)有多個,
那對應(yīng)的原始的sql為
oracle中的用法: 改善sql
mysql中的用法: 改善sql
直接用jdbc的話,就用resultSet結(jié)果集去數(shù)據(jù),rs第一次指向數(shù)據(jù)索引,rs.next()是第一行,然后列可以想map一樣取值,例如getString(“name”);
select *
from 表名
limit 10, 11
注:第10條到第20條共計11條記錄