gpt4 book ai didi

mysql - 如何从连接表sql中获取id

转载 作者:行者123 更新时间:2023-11-29 15:47:27 25 4
gpt4 key购买 nike

我有一张 siswa 和 kelas 的连接表。在kelas表中有一个列idSiswa,它来自siswa表的id。问题是我如何在加入 kelas 后从 kelas 获取 id。当我尝试获取 id 时,它显示来自 siswa 表的 id,而不是来自 kelas 表的 id,我也已经使用了右连接和左连接,但仍然没有得到答案

这是我的 kelas 表 this is my kelas table

这是我的siswa table this is my siswa table

我使用 Laravel 中的查询构建器来运行查询,这是我的查询

$siswa = DB::table('siswas')
->join('kelas', 'kelas.idSiswa', '=', 'siswas.id')
->where([
['kelas.kelas', '2'],
['kelas.semester', 'ganjil'],

])
->select('kelas.*', 'siswas.*')
->get();

最佳答案

您的问题源于名称冲突。当您连接两个表时,有 2 个字段。为了解决这个问题,你应该使用 SQL 别名。您可以在 this topic 上查看示例

您还可以考虑使用 Eloquent,它提供 OOP 优势并自动避免此类问题。

namespace App;

use Illuminate\Database\Eloquent\Model;

class Kelas extends Model
{
public function siswa()
{
return $this->belongsTo('App\Siswa', 'idSiswa', 'kelas');
}
}
namespace App;

use Illuminate\Database\Eloquent\Model;

class Siswa extends Model
{
public function kelas()
{
return $this->hasMany('App\Kelas', 'idSiswa', 'kelas');
}
}
$siswa = App\Siswa::with('kelas')
->where([
['kelas', '2'],
['semester', 'ganjil'],
])
->get();

$firstSiswaKelasIds = $siswa->first()->kelas->map->id;

关于mysql - 如何从连接表sql中获取id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56956646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com