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

#1222 - Използваните изрази SELECT имат различен брой колони

Първото изявление в UNION връща четири колони:

SELECT b.id AS id, 
       b.pid AS pid, 
       b.message AS message, 
       b.date AS date 
  FROM wall_posts AS b 

Вторият връща шест , защото * се разширява, за да включва всички колони от WALL_POSTS :

SELECT b.id, 
       b.date, 
       b.privacy,
       b.pid. 
       b.uid message
  FROM wall_posts AS b 

UNION и UNION ALL операторите изискват това:

  1. Един и същ брой колони съществува във всички изрази, които съставляват заявката на UNION
  2. Типовете данни трябва да съвпадат на всяка позиция/колона

Използвайте:

FROM ((SELECT b.id AS id, 
             b.pid AS pid, 
             b.message AS message, 
             b.date AS date 
        FROM wall_posts AS b 
        JOIN Friends AS f ON f.id = b.pid 
       WHERE f.buddy_id = '1' AND f.status = 'b'
    ORDER BY date DESC
       LIMIT 0, 10)
      UNION
      (SELECT id,
              pid,
              message,
              date
         FROM wall_posts
        WHERE pid = '1'
     ORDER BY date DESC
        LIMIT 0, 10))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-ефективният начин за вмъкване на редове в MySQL база данни

  2. MYSQL Geo Search има ефективност от разстояние

  3. mysqld:Не мога да променя директорията в данни. Сървърът не се стартира

  4. вмъкване на множество стойности на квадратче за отметка само последната стойност се приема в базата данни

  5. Как да търсите JSON данни в MySQL?