《資料庫技巧》資料庫兩個表求笛卡爾積(階乘)
最近遇到了一個需求:使用者在客戶端頁面上進行資料錄入,下拉列表的選擇,然後使用者對頁面資料進行提交。後臺要根據客戶端傳來的資料進行分析,並且生成一串數字,將該數字串進行儲存。
介紹之前,我們要了解本文的一個名詞【笛卡爾積】,同俗的來講,就是數學中的排列組合。
- 如果還是不理解,就更直觀的描述下。我們頁面有兩個下拉列表,每個列表有兩個選項,使用者的選擇是隨機的。因此正常情況下這兩個列表的笛卡爾積就是2*2=4,那麼我們就需要建立第三個表,將所有可能產生的資料都儲存到這個表中。下面是這個例子;
- 我們可以看到兩個下拉列表的笛卡爾積是A1 A2 B1 B2這四種情況。
那麼。我門就用sql將資料庫的這兩個下拉列表進行笛卡爾積:
SELECT * FROM 表1 CROSS JOIN 表2;
- 這裡要特表說明的是。我們上面的sql的意思是:將兩個表進行笛卡爾積,但是實際開發中,所有的下拉列表(資料字典)都存在一張表裡面,並且列表項也不可能只有2個選項,因此建議大家從新建表,將每個下拉列表單獨建立為一張表,然後在進行笛卡爾積就好。
如果各位還是有疑問,歡迎留言
相關推薦
《資料庫技巧》資料庫兩個表求笛卡爾積(階乘)
最近遇到了一個需求:使用者在客戶端頁面上進行資料錄入,下拉列表的選擇,然後使用者對頁面資料進行提交。後臺要根據客戶端傳來的資料進行分析,並且生成一串數字,將該數字串進行儲存。 介紹之前,我們要了解本文的一個名詞【笛卡爾積】,同俗的來講,就是數學中的排列組合。
JAVA實驗四:打印出這兩個集合的笛卡爾乘積
題目 設計一個類的方法,其輸入是兩個字串的集合(每個集合中的字串有相同的意義,例如,一個全是姓名的字串,一個全是班級的字串),打印出這兩個集合的笛卡爾乘積。 答案 public class Main { public static void find(Stri
java山科實驗4-4 設計一個類的方法,其輸入是兩個字串的集合,打印出這兩個集合的笛卡爾乘積。
設計一個類的方法,其輸入是兩個字串的集合(每個集合中的字串有相同的意義,例如,一個全是姓名的字串,一個全是班級的字串),打印出這兩個集合的笛卡爾乘積。 package zuoye4; public
和我一起學程式設計系列(1):一文讓你讀懂資料庫聯合查詢(sql joins)的原理,笛卡爾積
格式和我原來的不一致,將就看吧 和我一起學程式設計系列(1):-1.補充,笛卡爾積的概念 首先得有兩個集合, A={1,2},B={3,4}A={1,2},B={3,4} 那麼他們的笛卡爾積就是: 即他們的笛卡爾積CC
SQLServer:CROSS JOIN 生成兩張表的笛卡爾集
INSERT INTO FareAdmin.sys_menu_privilege (menu_key\, privilege_id\, default_allow) SELECT FareAdm
實操-mysql表連接笛卡爾積(join、left join)
卡爾 desc 順序 join mysql png blog 關系 方式 1、為什麽兩張表連接會出現重復數據 2、表的連接過程是怎樣的? 舉例: 表A: 1 0 表B: 1 0 0 2 執行語句:select *
SQL用and和or多表查詢笛卡爾積
原因:and或or都要有過濾條件才行,比如 SELECT T1.* from T_DC_ORDER_CENTER_DETAIL T1, TD_S_COMMPARA T2 WHERE T1.CH
7-8 笛卡爾樹 (25 分)
7-8 笛卡爾樹 (25 分) 笛卡爾樹是一種特殊的二叉樹,其結點包含兩個關鍵字K1和K2。首先笛卡爾樹是關於K1的二叉搜尋樹,即結點左子樹的所有K1值都比該結點的K1值小,右子樹則大。其次所有結點的K2關鍵字滿足優先佇列(不妨設為最小堆)的順序要求,即該結點的K2值比其子樹
笛卡爾樹(Cartesian Tree)
笛卡爾樹是一棵二叉樹,樹的每個節點有兩個值,一個為index,一個為value。光看index的話,笛卡爾樹是一棵二叉搜尋樹,每個節點的左子樹的index都比它小,右子樹都比它大;光看value的話,笛卡爾樹有點類似堆,根節點的value是最小(或者最大)的
資料庫Oracle之多表查詢:笛卡爾積、等值連線、不等值連線、外連線,自連線
select e.empno, e.ename, e.sal, s.grade from emp e, SALGRADE s where e.sal >= s.losal and e.sal <= s.hisal -- where e.sal between s.
一張表中把兩個欄位相同的資料合併(listagg函式)
問題描述: 如下圖所示,需求是把省和產品相同的NTID合併到一起。 元資料: 想要的結果: 折騰了半天,結果經專案組大神指教,說有一個函式可以直接完成上訴操作。 listagg(); 程式碼如下: select yearmonth, listagg(ntid,
19 Oracle資料庫SQL開發之 笛卡爾積
19.Oracle資料庫SQL開發之 笛卡爾積如果在多表查詢中不指定連線條件,就會導致將一個表中的所有行都連線到另外一個表中的所有行上。稱為笛卡爾積。如果第一個表包含50行,第二個表包含100行,那麼將返回5000行。例如:SQL>select pt.product_ty
求兩個字串最長公共子串(動態規劃)
code如下: //Longest common sequence, dynamic programming method void FindLCS(char *str1, char *str2) { if(str1 == NULL || str2 == NULL)
還需要註冊的是我們還有一個是“交差集”?cross?join,?這種Join沒有辦法用文式圖表示,因為其就是把表A和表B的數據進行一個N*M的組合,即笛卡爾積。表達式如下:
笛卡爾 tab 表達 但是 rom 產生 OS 是我 語法 還需要註冊的是我們還有一個是"交差集" cross join, 這種Join沒有辦法用文式圖表示,因為其就是把表A和表B的數據進行一個N*M的組合,即笛卡爾積。表達式如下: SELEC
7-3 兩個有序連結串列序列的合併 (20 分)
7-3 兩個有序連結串列序列的合併 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格
6-1 兩個有序連結串列序列的合併 (15 分)
本題要求實現一個函式,將兩個連結串列表示的遞增整數序列合併為一個非遞減的整數序列。 函式介面定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node PtrToNode; struct Node
MOOC陳越資料結構第二週02-線性結構1 兩個有序連結串列序列的合併 (15 分)
首先讀題,題目中說L1,L2都為含頭節點的,第一次做的時候沒有認真讀題以為不帶頭節點,傳出的連結串列也要求帶頭節點。 程式碼 List Merge(List L1,List L2){ List pa,pb,pc,L; L = (List)malloc(si
【問題求教】7-2 兩個有序連結串列序列的交集 (20 分)
已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2的交集新連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出兩個輸入序列的交集序列
Oracle (02)SELECT.函式.多表查詢.笛卡爾乘積.SQL99 標準連線.組函式.
SELECT order by 子句 (排序) *** 筆記中出現的[] 表示可以忽略的引數! 編寫的格式有一個特點: order by子句 , 如果出現, 必須放在select語句的最後面! order by 可以對查詢的結果集, 指定排序的規則! 規則: 升序(asc
InChat版,僅僅兩個介面實現自己的IM系統(可相容)
InChat 一個IM通訊框架 一個輕量級、高效率的支援多端(應用與硬體Iot)的非同步網路應用通訊框架。(核心底層Netty) 版本目標:完成基本的訊息通訊(僅支援文字訊息),離線訊息儲存,歷史訊息查詢,一對一聊天、自我聊天、群聊等。 你可以使用InC