資料庫左鏈結資料不存在,右表依舊顯示資料

2021-10-07 08:14:55 字數 1062 閱讀 2562

最近專案遇到乙個問題,需要些乙個收藏置頂功能,試了n種查詢方式,db,orm,都沒查出來,使用db左鏈結查詢,如果按照使用者id來查詢使用者的收藏情況,那麼只會顯示使用者的收藏,那些沒收藏的就不會顯示,使用orm的一對多關係,那麼就不能按照收藏時間來進行倒序,同樣實現不了,機緣巧合下搜到一大神著作,才解決,記錄一下

//主表門店,附表收藏表,按照附表使用者id來搜尋,那麼只能查出使用者為2的收藏資料以及門店資料,那沒有收藏的不顯示,

$list =db:

:table

('shop')-

>

select

('*')-

>

leftjoin

('collect'

,'shop.id'

,'='

,'collect.collect_id')-

>

where([

'shop.type'

=>1,

'shop.status'

=>1]

)->

where

('collect.user_id',2

)->

orderby

('collect_time'

,'desc');

//下面的實現了按照使用者來搜尋,顯示全部的門店資料,有收藏就顯示,沒收藏自動補全為空,完美實現

$list =db:

:table

('shop')-

>

select

('*')-

>

leftjoin

('collect'

,function

($join)

use($data))-

>

where([

'shop.type'

=>1,

'shop.status'

=>1]

)->

orderby

('collect_time'

,'desc'

);

查詢資料庫中不存在的ID

假設你資料庫有個a表 idname 1aaa 2bbb 3ccc 4ddd 需求 給你幾個id,返回a表中不存在的id?給你1,2,8,9 返回8,9.1.一般會這麼處理 select id from a where a.id in 1,2,8,9 然後程式處理。2.現在用乙個sql處理 sql s...

Hibernate 報資料表不存在

報錯資訊 org.hibernate.exception.sqlgrammarexception could not execute statement caused by com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception table...

SQL查詢存在A表但不存在B表的資料

其中b表的b id欄位引用了a表的id欄位。現在有個查詢需求 給出已知的a表中的id,比如 id in 1,2,3 找出這些id在b表中沒有與之對應的記錄。比如說上面a表中的id 3這條記錄,b表中沒有b id與之對應 方式一.利用子查詢 select a.id from a a where a.i...