最近專案遇到乙個問題,需要些乙個收藏置頂功能,試了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...