[英]Running “exists” queries in Laravel query builder
我正在嘗試執行此操作:
SELECT * FROM `lms_test`
WHERE NOT EXISTS
(SELECT * FROM `lms_studenttest`
WHERE `lms_test`.slug = `lms_studenttest`.testId
AND `lms_studenttest`.`studentId`='10a75c804b8851520993dedc42334c0f'
)
AND `lms_test`.`testType`= 'Practice Test'
但是沒有成功。
幫我做。
我認為您可以嘗試以下示例:
A::whereNotExists(function($query){
$query->select(DB::raw(1))
->from('B')
->whereRaw('A.id = B.id');
})
->get();
要么
DB::table('lms_test')
->whereNotExists(function ($query) {
$query->select('lms_studenttest.*')
->from('lms_studenttest')
->where('lms_test.testType', 'Practice Test')
->where('lms_studenttest.studentId', '10a75c804b8851520993dedc42334c0f')
->whereRaw('lms_studenttest.testId = lms_test.slug');
})
->get();
希望對您有幫助!
嘗試:
DB::table('lms_test')
->whereNotExists(function ($query) {
$query->select(DB::raw(1))
->from('lms_studenttest')
->where('lms_test.testType', 'Practice Test')
->where('lms_studenttest.studentId', '10a75c804b8851520993dedc42334c0f')
->whereRaw('lms_studenttest.testId = lms_test.slug');
})
->where('testType','Practice Test')
->get();
試試看(我不檢查真實數據,我只寫邏輯):
SELECT *
FROM `lms_test`
LEFT OUTER JOIN `lms_studenttest`
ON `lms_test`.slug = lms_studenttest`.testId
WHERE `lms_studenttest`.testId IS NULL
AND `lms_studenttest`.`studentId`='10a75c804b8851520993dedc42334c0f'
AND `lms_test`.`testType`= 'Practice Test'
嘗試以下條件查詢,讓我知道它是否有幫助:
if (User::where('email', '=', Input::get('email'))->exists()) {
// user found
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.