查询mysql总是返回重复结果

蝎子

我对mysql有以下查询:

SELECT asistencia.codAsistencia, asistencia.fecha, bonos.codBono, asistencia.estado, 
contratan.activo, contratan.codContrato, contratan.tiempoRestanteBono, asistencia.mensaje, users.nombre 
FROM asistencia, users, bonos, contratan 
WHERE asistencia.usuario = users.id 
AND contratan.bono = bonos.codBono 
AND asistencia.estado = 'pendiente'

但始终返回重复结果。结果是正确的,但是我需要不要重复它,我也不知道为什么。

结果查询

附上我的移民资料,因为你可以显示关系

表用户

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('nif');
        $table->string('nombre');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->string('direccion')->nullable();
        $table->string('perfil')->default('usuario');
        $table->integer('telefono')->nullable();
        $table->rememberToken();
        $table->timestamps();
    });
}

表键

public function up()
{
    Schema::create('bonos', function (Blueprint $table) {
        $table->increments('codBono');
        $table->string('tipo',20);
        $table->integer('minutos')->unsigned();
        $table->Double('precio',5,2);
        $table->timestamps();
    });
}

餐桌协助

public function up()
{
    Schema::create('asistencia', function (Blueprint $table) {
        $table->increments('codAsistencia');
        $table->dateTime('fecha');
        $table->longText('mensaje');
        $table->bigInteger('usuario')->unsigned();
        $table->string("estado", 20)->default("pendiente");
        $table->timestamps();



        // hacemos la insercción aquí ya que la tabla debe estar creada
        \DB::table('bonos')->insert([
            ['tipo' => '1/2H', 'minutos' => '30', 'precio' => '20'],
            ['tipo' => '1H', 'minutos' => '60', 'precio' => '40'],
            ['tipo' => '5H', 'minutos' => '300', 'precio' => '175'],
            ['tipo' => '10H', 'minutos' => '600', 'precio' => '330'],
            ['tipo' => '24H', 'minutos' => '1200', 'precio' => '600'],
        ]);



        $table->foreign('usuario')->references('id')->on('users');
    });
}

表表现

 public function up()
{
    Schema::create('actuacion', function (Blueprint $table) {
        $table->increments('codActuacion');
        $table->dateTime('fecha');
        $table->Integer('tiempoEmpleado');
        $table->Integer('asistencia')->unsigned();


        $table->foreign('asistencia')->references('codAsistencia')->on('asistencia');

    });
}

他们租用的桌子

public function up(){
    Schema::create('contratan', function (Blueprint $table) {
        $table->increments('codContrato');
        $table->Integer('bono')->unsigned();
        $table->Integer('tiempoRestanteBono')->unsigned();
        $table->tinyInteger('activo')->default('0');
        $table->bigInteger('usuario')->unsigned();


        $table->foreign('usuario')->references('id')->on('users');
        $table->foreign('bono')->references('codBono')->on('bonos');
    });
}

现在您可以看到我所有的表格及其关系,但是我不知道为什么查询中重复的条目...

我需要在“ pendiente”状态下获得所有帮助

非常感谢您的帮助

蝎子

解决方案是在查询中添加“ group by”,然后在laravel中转到config / database并更改此设置:

'strict' => false,

严格来说,将其设置为true,然后更改为false

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章