![](/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.