sql關聯,笛卡爾乘積問題。

2021-07-05 17:04:12 字數 438 閱讀 6126

mysql語句拼寫時存在笛卡爾乘積的問題,如果想要以a表為主,去其關聯表的部分字段,即:a中有n條,關聯b之後也是n條,則條件應作為b的關聯條件,而不是where之後的條件。

例:

select * from t_ord_item a

left join t_register_item b on b.itemid = a.itemid

and(

b.registid = 'demo|0004'

or b.registid is null

)where a.orgid_hosp = 'demo'

and a.activeflag = 1

and a.itemcateid = '03'

and a.ord_cateid = '0200'

笛卡爾乘積

笛卡爾 descartes 乘積又叫直積。假設集合a 集合b 則兩個集合的笛卡爾積為。可以擴充套件到多個集合的情況。類似的例子有,如果a表示某學校學生的集合,b表示該學校所有課程的集合,則a與b的笛卡爾積表示所有可能的選課情況。目錄名稱定義 序偶定義 笛卡爾積定義 推導過程 案例 序偶與笛卡爾積 定...

python中的笛卡爾乘積

在領扣刷題的過程中遇到需要使用笛卡爾積的解法,因為使用的是python3版本解決,所以在python版本中提供了乙個庫函式可以模擬笛卡爾乘積的元素組成過程 itertools.product,一般來說比較常使用的是在product方法中傳遞進a與b兩個可迭代的物件進行組合,官方提供的解釋如下 pro...

LEFT JOIN關聯出現笛卡爾積

消除笛卡爾乘積最根本的原因不是在於連線,而是在於唯一id,就像學號,乙個學生就只有乙個學號,學號就是這個學生的唯一標識碼。左連線只是以左邊的表為基準,左邊的id和右邊id都是唯一,就不會產生笛卡爾現象,如果右邊有兩個id對應左邊乙個id,就算你是左連線,一樣會產生1對多的現象。例子 select f...