1. 程式人生 > >只要關係配置正確,一條sql就可以解決迴圈中查詢資料庫的問題

只要關係配置正確,一條sql就可以解決迴圈中查詢資料庫的問題


如上配置,可以實現查詢多個訂單,並且查詢出每個訂單對應的商品資訊,存放在對應訂單的集合中,實體類中存在如下的屬性


在實體物件中展現一對多的關係,mapper檔案中通過collection標籤配置一對多關係

假設執行sql的結果如下:


相同的訂單出現可能不止一次,裡面存在的商品也不一樣,如何將同一訂單的商品整合在一起?

其實我們不需要做任何的事情,看到上圖中配置的ResultMap,因為PURCHASE_ID作為主鍵,資料庫中的每條記錄是一個物件,相同的訂單編號會覆蓋之前的訂單,而商品資訊則繼續往集合中新增。這樣最終就可以把一個訂單中的商品資訊全部放在一個集合中。

相關推薦

只要關係配置正確,sql可以解決迴圈查詢資料庫的問題

如上配置,可以實現查詢多個訂單,並且查詢出每個訂單對應的商品資訊,存放在對應訂單的集合中,實體類中存在如下的屬性 在實體物件中展現一對多的關係,mapper檔案中通過collection標籤配置一對多關係 假設執行sql的結果如下: 相同的訂單出現可能不止一次,裡面存

如何用sql語句刪除表所相同的記錄?

刪除重複資料  一、具有主鍵的情況  a.具有唯一性的欄位id(為唯一主鍵)  delete table  where id not in  (  select max(id) from table group by col1,col2,col3...  )  group by 子句後跟的欄位就是你用來判斷

Oracle的sql使用臨時表進行查詢

with CTE as( SELECT C.SUB_CORP_NAME ,B.BUS_PATH_NAME ,ROUND(S.ACTUAL_DAY_RUN_TOTAL_MILE / 1000, 2) AS MILE_ALREADY ,ROUND

CASE WHEN 及 SELECT CASE WHEN的用法(寫了坨爛代碼發現兩sql完成了, 哎)

IT 最大 圖片 prim 動態 date 出錯 返回 接下來 轉自:http://blog.sina.com.cn/s/blog_4c538f6c01012mzt.html Case具有兩種格式。簡單Case函數和Case搜索函數。 簡單Case函數

SQL語句查出每門課都大於80分的學生的姓名

src exist spa weight utf8 exists null ont http 用一條SQL語句查出每門課都大於80分的學生的姓名,數據表結構如下: 建表SQL如下: SET FOREIGN_KEY_CHECKS=0; -- --------------

如何sql語句查找表第二大值

roman splay 排名 數據庫 依然 sel col eight over 例1: 一個Customer表,一個字段Value,現請問如何查到Value中第二大的值 select max(value) from Customer

使用sql查詢多個表的記錄數

nbsp lec sel code spa select bold style 查詢 方法一: select t1.num1,t2.num2,t3.num3 from (select count(*) num1 from table1) t1, (se

sql語句update 多記錄

key mysq ech tle date class spl imp set UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END

Oracle sql插入多數據

har into primary from bsp 多條 style lec num Oracle一次插入多條數據。 表結構: create table aa (   ID NUMBER(11) PRIMARY KEY,   NAME VAR

SQL引發系統out of memory PostgreSQL

一條sql引發系統out of memo錯誤描述(1) Postgres執行的原SQL:select COALESCE(m1.place_id, m2.place_id, m3.place_id) as place_id, concat_ws('``', m1.rich_attributes,

SQL查詢一個屬性,多個屬性值的情況

cat sele 屬性 clas family 獲取 sql 查詢 group 原先sql獲取角色對應的權限信息: select a.*, group_concat(b.auth_name) as auth_name from sh_role a left join sh_

SQL引起的MySQL主從復制報錯1205

MySQL主從復制 Error_code: 1205 鎖表 SQL優化 大家都知道DBA就像是消(背)防(鍋)員(俠),因為前端應用還有開發上線的新版本都會影響到位於最底層的數據庫,前方稍微有些風吹草動,就能反應在數據庫的性能上。但是有的時候SQL不僅能決定數據庫的性能,還能決定數據庫的生死,

MySQL實現sql完成多數據的更新

turn update col || param 格式 IT post href 原始功能: update categories SET display_order= 3,title = ‘New Title 1‘ where id=1; update categ

cakephp獲取最後sql語句

ger figure manage 設置 語句 代碼 sql語句 echo data 1.在app\config\core.php中設置Configure::write(‘debug‘, 2); 2.頁面上追加如下代碼: $dbo = ConnectionManage

SQL 能做多維分析

就是 nbsp 分析 學習 127.0.0.1 多維 返回 應用程序 web 應用 上一篇我們以 Excel 文件數據集為例,介紹了如何把 Excel 的數據透視表嵌入到俺的應用程序中。愛學習的同學會問了,Excel 數據透視表可以使用 Excel 裏取到的任何數據,比如數

MySQL學習----explain查看sql 的性能

一個 mysql學習 哪些 就是 dex 詳細 輸出 命令 ora 在開發的過程中,對於我們寫的sql語句,我們有時候會考慮sql語句的性能,那麽explain就是首選。Explain命令在解決數據庫性能上是第一推薦使用命令,大部分的性能問題可以通過此命令來簡單的解決,Ex

SQL查詢出每門課程的成績都大於80的學生姓名是一道有歧義的題嗎?

‘用一條SQL語句查詢出每門課程的成績都大於80的學生姓名’是一道歧義題嗎? name   kecheng    fenshu  張三     語文       &nbs

案例2:用SQL查詢出數學語文成績都大於80分的學生姓名?

方法1: 查出科目成績有小於80分的學生姓名,再約束並去重學生不等於查出來的姓名 select distinct A.name from t_score A where A.name not in(select distinct B.name from t_score B where B.fenshu &

MySQL學習----explain檢視sql 的效能

在開發的過程中,對於我們寫的sql語句,我們有時候會考慮sql語句的效能,那麼explain就是首選。Explain命令在解決資料庫效能上是第一推薦使用命令,大部分的效能問題可以通過此命令來簡單的解決,Explain可以用來檢視 SQL 語句的執行效 果,可以幫助選擇更好的索引和優化查詢語

教你用SQL搞定跨資料庫查詢難題

摘要: 資料庫拆分後,資料分佈到不同的資料庫例項,可達到降低資料量,增加例項數的擴容目的。然而前途是美好的,道路是曲折的。一旦涉及拆分,就逃不開“原本在同一資料庫裡的查詢,要變成跨兩個資料庫例項”的查詢問題。 導讀 日前,某電商使用者由於業務發展迅猛,訪問量極速增長,導致資料庫容量及效能遭遇