最近做專案的時候遇到乙個需要級聯查詢的資料,表中又沒有定義相關的外來鍵約束,所以限定了咱們只能使用join方式的關聯而不是include的方式關聯,關於include和join的詳細用法,本屌就不再此處進行詳細說明了。園子裡相關的文章有很多,大家請自行去檢視!
廢話不多說,直接上**:
說明:1.ef的join級聯查詢生成的語句是inner join 的方式,所以此處生成的指令碼語句應該類似下面的形式:
select * from tablenamea a
inner join tablenameb b
where ...相關條件...
2.圖一中的標紅的1表示關聯的表 也就是tablenameb的名字 2表示級聯的資料集
3.通過檢測資料庫可以發現生成的指令碼如下:
備註:紅色圓圈內的標記 說明我們的猜測是正確的。
說明:圖一和圖二的不同點就在紅色標記2
我們再次監測資料庫生成的指令碼:
說明:我們發現生成的指令碼並不和我們所想象的一樣,而是先查詢除關聯表的資料再取出符合條件的。這樣就比較耗時了。
z總結:經過多方資料的查詢發現:原來使用join關聯的時候,關聯字段值的名字需要一樣才會使用inner的級聯方式查詢,如果不一樣的話,會使用類似第二種的這種查詢方式進行查詢。
自己遇到的坑,在此處進行記錄下,防止下次繼續踩坑。 備註:這個還是有其他的解決方案的,詳情這個大神的文章《
寫在最後:本屌才疏學淺,要是有寫的不妥的地方,還望各位大蝦們勿噴!
mysql的連表查詢 MySQL 連表查詢
連表查詢 連表查詢通常分為內連線和外連線。內連線就是使用inner join進行連表查詢 而外連線又分為三種連線方式,分別是左連線 left join 右連線 right join 全連線 full join 下來我們一起來看一下這幾種連線方式的區別及基礎用法。內連線inner join inner...
zf聯表查詢
zf支援聯表查詢,並且會經常遇到聯表查詢,具體 寫法如下 select this select select from this name,array id name select distinct select joinleft jobname,jobname.enterprise id this...
sql聯表查詢
比如 all list 這個表,是包含所有資料的,我們要把整個資料的某些字段查詢出來顯示在列表上 select from all list select 現在我要檢視一條資料,需要根據表 user list 的乙個字段內容,去檢視另外乙個表 info list 的內容 select dept nam...