Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Saya tidak bisa mendapatkan permintaan bergabung mysql ini untuk menghasilkan hasil yang diinginkan

Saya cukup yakin bahwa masalah Anda adalah karena GROUP BY your Anda ayat. Tidak yakin apa tujuan Anda menggunakan itu, tetapi cobalah tanpa itu. Jika Anda mendapatkan baris duplikat, coba gunakan SELECT DISTINCT . Jika tujuan Anda adalah mengurutkan hasil berdasarkan kolom tersebut, gunakan ORDER BY .

Juga, menentukan receipt_no dua kali di WHERE klausa berlebihan. Kedua tabel tersebut sudah bergabung dengan kolom itu, jadi Anda hanya perlu memfilternya dalam satu tabel. Dan backtick tidak benar-benar diperlukan kecuali untuk beberapa pengecualian khusus, seperti spasi atau koma di nama kolom, atau kolom bernama sama dengan kata-kata yang dicadangkan (mungkin beberapa lainnya juga). Satu-satunya kolom Anda yang sepertinya membutuhkan backtick adalah date kolom, tetapi bahkan mengecualikannya di kolom itu, Anda seharusnya tetap baik-baik saja. Saya hanya menemukan bahwa backticks di mana-mana membuat kueri lebih lama dan lebih sulit dibaca. Mereka tidak merugikan apa pun dengan berada di sana, jadi Anda dapat meninggalkan mereka jika itu pilihan Anda, tetapi secara pribadi, saya bukan penggemarnya.

Saya menulis ulang permintaan Anda dengan modifikasi saya yang disebutkan di atas, ditambah saya memberikan tabel alias untuk lebih mempersingkatnya. Ini tidak meningkatkan kinerja atau apa pun, hanya membuatnya lebih mudah untuk membaca IMO:

SELECT DISTINCT
    b.receipt_no, client, operator, discount, total_amount,
    amount_paid, balance, `date`, jobtitle, quantity,
    amount, date_paid, old_balance, debtor_amount_paid, new_balance
FROM
    booking b
    INNER JOIN jobtitle jt ON jt.bookingID = b.bookingID
    INNER JOIN first_graphics_debtors fgd ON fgd.receipt_no = b.receipt_no
WHERE
    b.receipt_no = '753263343'
ORDER BY
    jt.quantity


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql sinkron di Node.js

  2. Nilai input yang tersusun menyisipkan catatan kosong di mysql

  3. MySQL:Perbarui beberapa kolom jika nilainya sama dengan

  4. Sequelize.js kunci asing

  5. Tangani restart mysql di SQLAlchemy