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

Pernyataan SELECT memiliki jumlah kolom yang berbeda

Itu karena SELECT pertama Anda dan SELECT ke-2 memiliki jumlah kolom yang bervariasi, sejak Anda memperkenalkan Distance di SELECT ke-2 .

Jadi coba buat Distance dalam kueri pertama null atau 0 sebagai berikut.

SELECT * FROM
(
   SELECT *, 0 as Distance
   FROM user u
   INNER JOIN employee e ON (u.empid = e.empid)
   INNER JOIN awards a ON (u.empid = a.empid)
   WHERE u.empid = 123

   UNION

   SELECT *, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) )+ sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
   FROM user u
   INNER JOIN employee e ON (u.empid = e.empid)
   INNER JOIN awards a ON (u.empid = a.empid)
   HAVING distance < 25
   ORDER BY distance
) a
ORDER BY timestamp DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengalami masalah saat menjalankan Rails di Ubuntu

  2. Stempel Waktu &Tanggal di baris tabel MySQL

  3. NodeJS, tidak menutup koneksi mysql

  4. Menggunakan ActiveRecord untuk mencapai relasi kompleks di Rails

  5. MySQL GROUP dengan atau menggunakan PHP?