繁体   English   中英

SQLSTATE [23000]:违反完整性约束:1052与laravel结合使用

[英]SQLSTATE[23000]: Integrity constraint violation: 1052 using join with laravel

我有两个表,我试图join它们以获取所有引用的表,但出现错误,但是我不确定我做错了哪一部分,有人可以帮我吗?

我有此表迁移的票证

public function up()
{
    Schema::create('tickets', function (Blueprint $table) {
        $table->increments('id');
        $table->string('ticketNumber')->nullable(true)->unique();
        $table->boolean('is_deleted')->default(false);
        $table->timestamps();
    });
}

我有此表,它保存票证ticket_notes注释,并且我使用ticketNumber而不是id引用

public function up()
{
    Schema::defaultStringLength(191);
    Schema::create('ticket_notes', function (Blueprint $table) {
        $table->string('ticketNumber');
        $table->foreign('ticketNumber')->references('ticketNumber')->on('tickets');
        $table->increments('id');
        $table->string('rloc', 50);
        $table->boolean('is_deleted')->default(false);
        $table->timestamps();
    });
}

我是用query builder来执行查询,而不是eloquent relationships

DB::table('tickets')->where([
    'ticketNumber' => 12345,
    'is_deleted'   => false,
])
    ->join('ticket_notes', 'tickets.ticketNumber', '=', 'ticket_notes.ticketNumber')
    ->select('tickets.*');

我收到此错误SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'ticketNumber' in where clause is ambiguous (SQL: select.* from门票inner join ticket_notes on门票. ticketNumber = ticket_notes . ticketNumber where ( ticketNumber = 12345 and is_deleted = 0))

任何人都可以给我一个全新的外观,看看我在加入时做错了什么? 在此先感谢您的任何建议/帮助。

由于存在连接,因此有2列名为ticketNumber。 指定您想要的那个。 'tickets.ticketNumber' => 12345

DB::table('tickets')->where([
    'tickets.ticketNumber' => 12345,
    'is_deleted'   => false,
])
->join('ticket_notes', 'tickets.ticketNumber', '=', 
    'ticket_notes.ticketNumber')
->select('tickets.*');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM