cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memilih, memadankan dan mengembalikan nilai dalam pertanyaan mysql?

Saya mempunyai dua meja, meja perpindahan dan meja kelab.

Ini adalah pemindahan meja:

id Nama Nama keluarga Dari kelab Pergi ke kelab Harga mengikut nombor belakang Nombor pemulangan
0 Contoh 1 Contoh 2 EX3 EX4 Contoh 5 Contoh 6 Contoh 7

Ini ialah kelab meja:

id Singkatan Nama penuh
0 EX3 Contoh 3
1 EX4 Contoh 4

Saya ingin mengambil satu baris dari jadual perpindahan, mendapatkan fromclub, memadankannya dengan singkatan dalam Clubs, mendapatkan nama penuh dari baris, dan menambahnya pada respons. Saya mahu melakukan perkara yang sama dengan lajur toclub. Kemudian saya mahu mengulanginya untuk setiap baris lain dalam pemindahan jadual.

Untuk memastikan perkara mudah, inilah hasil jangkaan saya:

id Nama Nama keluarga Dari kelab Pergi ke kelab Harga mengikut nombor belakang Nombor pemulangan Daripada nama penuh kelab nama penuh toclub
0 Contoh 1 Contoh 2 EX3 EX4 Contoh 5 Contoh 6 Contoh 7 Contoh 3 Contoh 4

Saya nampaknya tidak dapat mencari cara untuk membina pertanyaan yang melakukan ini tanpa mendapat sekitar 512 baris hasil, walaupun saya pada masa ini hanya mempunyai 8 baris hasil.

SELECT *
FROM transfers,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.fromclub) AS fromclubfullname,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.toclub) AS toclubfullname

Ia mengembalikan 512 baris dan dua lajur (dipanggil nama penuh) dan bukannya satu lajur dari nama penuh kelab dan nama penuh kelab.

P粉986028039P粉986028039231 hari yang lalu488

membalas semua(1)saya akan balas

  • P粉827121558

    P粉8271215582024-04-03 15:15:27

    Anda boleh melakukan ini melalui 左连接 -

    SELECT 
         transfers.*,
         c1.fullname as fromclubfullname,
         c2.fullname as toclubfullname FROM `transfers`
    LEFT JOIN clubs c1 ON (c1.abbr = transfers.fromclub)
    LEFT JOIN clubs c2 ON (c2.abbr = transfers.toclub)

    balas
    0
  • Batalbalas