第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL連接:選擇一對多關(guān)系中的最后一條記錄

SQL連接:選擇一對多關(guān)系中的最后一條記錄

慕的地10843 2019-08-09 10:36:58
SQL連接:選擇一對多關(guān)系中的最后一條記錄假設(shè)我有一張顧客表和一張購買表。每次購買都屬于一個客戶。我想在一個SELECT語句中獲取所有客戶的列表以及他們上次購買的列表。什么是最佳做法?有關(guān)構(gòu)建索引的建議嗎?請在答案中使用這些表/列名稱:顧客:身份證,姓名購買:id,customer_id,item_id,日期在更復(fù)雜的情況下,通過將最后一次購買放入客戶表中,是否(性能方面)有利于對數(shù)據(jù)庫進行非規(guī)范化?如果(購買)ID保證按日期排序,是否可以通過使用類似的方式簡化語句LIMIT 1?
查看完整描述

3 回答

?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

您尚未指定數(shù)據(jù)庫。如果它是允許分析函數(shù)的那個,那么使用這種方法可能比GROUP BY更快(在Oracle中肯定更快,在SQL Server后期版本中更快可能更快,不了解其他版本)。

SQL Server中的語法是:

SELECT c.*, p.*FROM customer c INNER JOIN 
     (SELECT RANK() OVER (PARTITION BY customer_id ORDER BY date DESC) r, *
             FROM purchase) pON (c.id = p.customer_id)WHERE p.r = 1


查看完整回答
反對 回復(fù) 2019-08-09
  • 3 回答
  • 0 關(guān)注
  • 1513 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號