sql, java saya mohon bimbingan.
某草草
某草草 2017-06-28 09:22:29
0
1
794

Mengapa saya menggunakan nombor perusahaan dan nombor pengguna untuk menanyakan semua jabatan dan bilangan orang di bawah jabatan, dan hanya satu data dikembalikan
Reka bentuk jadual pangkalan data ialah: jadual pengguna dan jadual perusahaan adalah satu-? kepada-satu, dan jadual perusahaan dan jadual jabatan adalah satu-ke-banyak Ya,
Berikut ialah sql yang saya tulis:

SELECT count(c.id) AS userCount,
b.company_id AS companyId,
b.`name` AS `name`

DARI

company_branch b

KIRI SERTAI fail_kakitangan c DI c.id_cawangan = b.id
DAN c.id_pengguna =55
DAN c.STATUS = 1
WHERE

1 = 1

DAN b.company_id =10043
KUMPULAN OLEH

b.id

HAD 0,
10;

某草草
某草草

membalas semua(1)
为情所困

Memandangkan anda tidak menerangkan nama jadual jadual perusahaan dan jadual jabatan, dan hanya terdapat satu jadual yang berkaitan dengan perusahaan atau jabatan dalam SQL, saya hanya boleh mengagak bahawa ia adalah jadual jabatan.
Berdasarkan andaian ini, mari kita bincangkan tentang SQL anda. SQL anda mempunyai masalah berikut:

  1. WHERE 1 = 1 anda tidak diperlukan

  2. LEFT JOIN里的ON语句,是用来限定左联上来的这个表的数据的,而不是用来限定结果数据的,要限定结果数据的话得用WHEREklausa

SQL yang diubah suai adalah seperti berikut:

SELECT
    COUNT(c.id) userCount,
    b.company_id companyId,
    b.name name
FROM
    company_branch b
LEFT JOIN
    company_personnel_file c ON c.branch_id = b.id
WHERE
    c.user_id = 55 AND
    c.STATUS = 1 AND
    b.company_id = 10043
GROUP BY
    b.id
LIMIT 0, 10;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan