![](/img/trans.png)
[英]MySQL select from a table and check in another table if the same value exists
[英]SQL select show table if not same value from another table (Laravel)
這是我的查詢,我試過這個查詢它有效。
SELECT *
FROM conference_venue
WHERE id_venue NOT IN (SELECT id_venue FROM submission_data WHERE id_submission = 1);
我想在conference_venue 中顯示數據。 但我不想顯示 id_venue 與 submit_data 表相同的數據(與提到 id_submission 的 id_venue 相同)。
我正在嘗試查詢 laravel 版本,但它是一個沒有錯誤的空白屏幕。
DB::table('conference_venue')
->whereNotIn('id_venue', function($q){
$q->select('id_venue')
->from('submission_data')
->where('id_submission', '=', 1);
})->select('*')->get();
當我在 sql 查詢控制台中嘗試時,此查詢有效,但在我使用 Laravel 查詢生成器嘗試時失敗。
你可以試試這個:
DB::table('conference_venue')
->select('*')
->whereRaw(
'conference_venue.id_venue NOT IN (SELECT submission_data.id_venue FROM submission_data WHERE id_submission = 1)'
)
或者更好的是,為conference_venue
和 submit_data 創建一個submission_data
(即: ConferenceVenue
, SubmissionData
),您可以為ConferenceVenue
和SubmissionData
添加 Eloquent 關系。
Eloquent 關系支持各種常見關系(一對一、一對多、多對多等),被定義為 Eloquent model 類上的方法。 由於關系還可以作為強大的查詢構建器,將關系定義為方法提供了強大的方法鏈接和查詢能力。 (參考: https://laravel.com/docs/8.x/eloquent-relationships )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.