Mysql
 sql >> база данни >  >> RDS >> Mysql

Изявленията SELECT имат различен брой колони

Това е защото първият ви SELECT и 2-ри SELECT имат различен брой колони, откакто въведохте Distance във 2-ри SELECT .

Така че опитайте да направите Distance в 1-ва заявка нула или 0, както следва.

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. Срещате проблеми при стартиране на Rails на Ubuntu

  2. Може ли тази sql заявка да бъде опростена?

  3. JComboBox променя индекса с помощта на DefaultComboBoxModel

  4. Как да рестартирате отдалечен MySQL сървър, работещ на Ubuntu linux?

  5. Mysql - Помогнете ми да променя тази заявка за търсене, за да получа желаните резултати