sql >> Databasteknik >  >> RDS >> Mysql

SELECT-satser har ett annat antal kolumner

Det beror på att din första SELECT och andra SELECT har varierande antal kolumner, sedan du introducerade Distance i 2:a SELECT .

Så försök göra Distance i den första frågan null eller 0 enligt följande.

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. Vad tycker du om Postgres och Firebird Databases?

  2. Hur lägger man till PostgreSQL-datakälla till WildFly 9.0?

  3. konvertera tidsstämpel till datum i java

  4. Tilldela dynamiskt filnamn till excel-anslutningssträng