Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengembalikan berbilang baris data apabila hanya satu pembolehubah unik tersedia untuk klausa di mana?

Saya pada masa ini mempunyai pertanyaan MySQL yang sangat mudah yang kelihatan seperti ini:

SET @recordID = 60749;
SELECT netID, ID, recordID, team
FROM NetLog
WHERE recordID = @recordID;

ID rekod pembolehubah adalah unik untuk setiap baris dan merupakan satu-satunya pembolehubah yang tersedia untuk mendapatkan baris yang diingini.

Tetapi sekarang saya juga perlu mengembalikan mana-mana baris lain yang mempunyai nilai 'pasukan' yang sama dengan baris asal. Saya mencuba beberapa variasi tetapi ia sentiasa mengembalikan "#1242 - Subquery mengembalikan lebih daripada 1 baris".

SET @recordID = 60749;
SELECT a.netID, a.ID, a.recordID, a.team,
    (SELECT b.recordID FROM NetLog b WHERE b.team = a.team AND b.recordID <> a.recordID) as rID
FROM NetLog a
WHERE a.recordID = @recordID;

Saya ingin melakukan ini dalam satu pertanyaan jika boleh.

Bolehkah seseorang menunjukkan saya ke arah yang betul?

P粉094351878P粉094351878402 hari yang lalu475

membalas semua(1)saya akan balas

  • P粉378890106

    P粉3788901062023-09-14 11:42:17

    Gunakan UNION untuk menggabungkan pertanyaan.

    WITH mainRow AS (
        SELECT netID, ID, recordID, team
        FROM NetLog
        WHERE recordID = @recordID
    )
    SELECT * FROM mainRow
    UNION
    SELECT b.netID, b.ID, b.recordID, b.team
    FROM NetLog AS b
    JOIN mainRow AS a ON b.team = a.team AND b.recordID <> a.recordID

    balas
    0
  • Batalbalas