sql >> Database >  >> RDS >> Mysql

SELECT-instructies hebben een ander aantal kolommen

Het is omdat je eerste SELECT en 2e SELECT hebben een wisselend aantal kolommen, sinds u Distance hebt geïntroduceerd in 2e SELECT .

Dus probeer Distance te maken in de eerste zoekopdracht null of 0 als volgt.

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. Panda's - write_frame naar sqlite - datetime64[ns]

  2. SQL-query met meerdere letters haalt één rij op als meerdere kolommen

  3. Hoe tekenset instellen voor MySQL in RODBC?

  4. Hoe geef ik de uitvoeringstijd van een MySQL-query weer in PHP?