cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mendapatkan baris yang berkaitan antara dua jadual

Borang saya:

表格1
练习

| primaryMuscleGroup | motionName           |
| ------------------ | -------------- ------|
| 胸部               | 双杠臂屈伸           |
| 胸部               | 卧推                 |
| 胸部               | 俯卧撑               |
| 胸部               | 飞鸟                 |
| 腿部               | 深蹲                 |
| 腿部               | 弓步                 |
| 背部               | 硬拉                 |

表格2
健身记录

| name               | motionName           |
| ------------------ | -------------- ------|
| 约翰·史密斯         | 双杠臂屈伸           |
| 莎莉               | 深蹲                 |
| 华莱士             | 弓步                 |
| 克里斯托夫         | 硬拉                 |

Pertanyaan harus mengembalikan semua latihan untuk kumpulan otot yang belum dilakukan oleh seseorang. Contohnya, jika kami menjalankan pertanyaan untuk pelanggan "John Smith" kami harus mengembalikan:

| primaryMuscleGroup | motionName           |
| 腿部               | 深蹲                 |
| 腿部               | 弓步                 |
| 背部               | 硬拉                 |

Jika kami menjalankan pertanyaan untuk pelanggan "Sally" kami harus kembali:

| primaryMuscleGroup | motionName           |
| ------------------ | -------------- ------|
| 胸部               | 双杠臂屈伸           |
| 胸部               | 卧推                 |
| 胸部               | 俯卧撑               |
| 胸部               | 飞鸟                 |
| 背部               | 硬拉                 |

P粉976737101P粉976737101512 hari yang lalu648

membalas semua(2)saya akan balas

  • P粉642919823

    P粉6429198232023-09-15 19:56:41

    Anda boleh menggunakan sambungan luar atau gunakan not exists untuk melihat sama ada pertanyaan berikut memenuhi keperluan anda:

    select * 
    from exercises e
    where not exists (
      select * from exercises x 
        where exists (
          select * from fitnessRecords fr
          where fr.name = 'john smith' and fr.motionName = x.motionName
        ) and x.primaryMuscleGroup = e.primaryMuscleGroup
    )

    balas
    0
  • P粉388945432

    P粉3889454322023-09-15 12:46:32

    SELECT *
    FROM excercises t1
    WHERE NOT EXISTS ( SELECT NULL 
                       FROM fitnessRecords t2
                       JOIN excercises t3 USING (motionName)
                       WHERE t2.name = '给定的名字'
                         AND t1.primaryMuscleGroup = t3.primaryMuscleGroup )

    https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=eb216b7579d5fcd0c0ab628717f3d676

    balas
    0
  • Batalbalas