ThinkPHP實(shí)現(xiàn)關(guān)聯(lián)子查詢

關(guān)聯(lián)查詢和子查詢一般是不一起用的,不過復(fù)雜場(chǎng)景下也會(huì)有使用,本文對(duì)此略加介紹。

場(chǎng)景

例如,A表是省份表,B表是城市表,C表是城市里的萬達(dá)廣場(chǎng)表,D表是萬達(dá)廣場(chǎng)里的店鋪表。

現(xiàn)在,當(dāng)前頁面需要調(diào)取城市表,這個(gè)表內(nèi)容要求:

每個(gè)市名左側(cè)要掛上省名,右側(cè)要列出該市所有的萬達(dá)廣場(chǎng)名單(不止一個(gè)廣場(chǎng)),每個(gè)萬達(dá)廣場(chǎng)名單后面要跟上該廣場(chǎng)的大名牌的名單。其中,每個(gè)市的萬達(dá)廣場(chǎng)和大品牌的名單合并起來寫在一個(gè)單元格里。

一個(gè)典型的行是:

萬達(dá)廣場(chǎng)
湖南 長(zhǎng)沙 A萬達(dá) 老鳳祥 GUCCI... B萬達(dá) 老鳳祥 俏江南

思路

萬達(dá)表分別跟市表、商鋪表做內(nèi)關(guān)聯(lián)查詢,這作為一個(gè)子查詢,以市表id為索引,然后,市表左關(guān)聯(lián)省表得到省名,市表也左關(guān)聯(lián)上面的子查詢,得到萬達(dá)和商鋪的一攬子信息。

實(shí)現(xiàn)

                $萬達(dá)_list = Db::table('萬達(dá)表')
                    ->join('市表', '萬達(dá).市_id = 市.id')
                    ->join('商鋪表', '商鋪.萬達(dá)_id = 萬達(dá).id')
                    ->field('市.id, group_concat(商鋪名) AS 商鋪_name,...其他想要的字段都合并)
                    ->group('市.id')
                    ->select(false);

重點(diǎn)在于:
1、上面代碼先獲取子查詢的代碼本身,select(false)表示只生成代碼,不真正查詢。生成的代碼不帶左右括號(hào),所以下文用的時(shí)候需要帶上左右括號(hào)。
2、該group_concat的group_concat,因?yàn)槲覀兇蛩惆讶f達(dá)和商鋪寫到一個(gè)單元格里。

                $市_list = Db::table('市表')
                    ->join('省表', '市.省_id = 省.id', 'LEFT')
                    ->join('('.$萬達(dá)_list.') as 萬達(dá)別名', '市.id = 萬達(dá)別名.id', 'LEFT')
                    ->field('市.id, ...其他字段')
                    ->select();

重點(diǎn)在于,將查詢語句括起來,給一個(gè)別名。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 萬達(dá)集團(tuán)董事長(zhǎng)王健林在2016年萬達(dá)年會(huì)上表示,萬達(dá)地產(chǎn)企服務(wù)業(yè)收入、凈利潤(rùn)大于地產(chǎn)收入,2016年萬達(dá)集團(tuán)服務(wù)業(yè)...
    最大化閱讀 719評(píng)論 0 3
  • SQL語言基礎(chǔ) 本章,我們將會(huì)重點(diǎn)探討SQL語言基礎(chǔ),學(xué)習(xí)用SQL進(jìn)行數(shù)據(jù)庫的基本數(shù)據(jù)查詢操作。另外請(qǐng)注意本章的S...
    厲鉚兄閱讀 5,458評(píng)論 2 46
  • 國(guó)慶第二天,今天嗨翻模式的開啟就等室友的同學(xué)來了再說吧,在這之前,先來一波筆記 查詢真正重要的是響應(yīng)時(shí)間,查詢包含...
    小煉君閱讀 1,821評(píng)論 0 50
  • 我以為傷心可以很少 我以為我能過的很好 想念如果會(huì)有聲音 不愿那是悲傷的哭泣 事到如今 終于讓自己屬于 我自己 只...
    王_世界閱讀 169評(píng)論 0 1
  • TCP/IP與OSI模型是一種相對(duì)應(yīng)的關(guān)系。 應(yīng)用層:大致對(duì)應(yīng)于O S I模型的應(yīng)用層和表示層,應(yīng)用程序通過該層利...
    花不休閱讀 339評(píng)論 0 0

友情鏈接更多精彩內(nèi)容