Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyrażenia SELECT mają różną liczbę kolumn

To dlatego, że Twój pierwszy SELECT i drugi SELECT mają różną liczbę kolumn, odkąd wprowadziłeś Distance w drugim SELECT .

Spróbuj więc ustawić Distance w pierwszym zapytaniu null lub 0 w następujący sposób.

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. brak nazw modułów _mysql; gdzie jest _mysql?

  2. Czy ktoś może pomóc wyjaśnić, dlaczego nieużywanie SQL JOIN jest złą praktyką i błędem?

  3. Funkcja MySql lub PHP do konwersji długości i szerokości geograficznej na stopnie dziesiętne

  4. użyj IFNULL w laravel

  5. mysql nie może nadać uprawnień użytkownikowi, pojawia się błąd:BŁĄD 1819 (HY000):Twoje hasło nie spełnia aktualnych wymagań polityki