cari

Rumah  >  Soal Jawab  >  teks badan

Dapatkan semula baris MySql dengan nilai lajur yang sama

Mari kita pertimbangkan jadual berikut-

ID Score
1  95

2  100

3  88

4  100

5  73

Saya seorang SQL noob yang lengkap, tetapi bagaimana cara saya mengembalikan skor yang mengandungi ID 2 dan 4? Jadi ia sepatutnya mengembalikan 100 kerana ia muncul dalam kedua-dua ID 2 dan 4

P粉464088437P粉464088437497 hari yang lalu936

membalas semua(2)saya akan balas

  • P粉237029457

    P粉2370294572023-11-11 20:57:58

    SELECT score
    FROM t
    WHERE id in (2, 4)
    HAVING COUNT(*) = 2 /* replace this with the number of IDs */

    Ini akan memilih baris dengan ID 2 dan 4. Kemudian, klausa HAVING memastikan bahawa kita menemui kedua-dua baris; jika salah satu daripadanya hilang, kiraan akan menjadi kurang daripada 2.

    Ini mengandaikan id adalah satu-satunya lajur.

    balas
    0
  • P粉933003350

    P粉9330033502023-11-11 10:43:35

    Ini ialah contoh pertanyaan "set dalam set". Saya mengesyorkan menggunakan klausa having untuk pengagregatan kerana ia adalah kaedah yang paling fleksibel.

    select score
    from t
    group by score
    having sum(id = 2) > 0 and -- has id = 2
           sum(id = 4) > 0     -- has id = 4

    Apa yang dilakukan ini ialah agregat mengikut skor. Kemudian bahagian pertama klausa having 子句的第一部分 (sum(id = 2) (jumlah(id = 2)) mengira berapa banyak "2" yang terdapat dalam setiap pecahan. Yang kedua ialah nombor "4". Hanya markah "2" dan "4" dikembalikan.

    balas
    0
  • Batalbalas