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

#1222 — Użyte instrukcje SELECT mają różną liczbę kolumn

Pierwsza instrukcja w UNION zwraca cztery kolumny:

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

Drugi zwraca sześć , ponieważ * rozwija się i obejmuje wszystkie kolumny z WALL_POSTS :

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

UNION i UNION ALL operatorzy wymagają, aby:

  1. Ta sama liczba kolumn istnieje we wszystkich wyrażeniach składających się na zapytanie UNION
  2. Typy danych muszą być zgodne w każdej pozycji/kolumnie

Użyj:

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 utf8mb4, Błędy podczas zapisywania emotikonów

  2. Czy istnieje sposób, aby zaktualizować wszystko, co chciałem wstawić, za pomocą opcji ON DUPLICATE KEY?

  3. Dane wyjściowe XML z MySQL

  4. Dane wejściowe użytkownika, wyczyść i odkaż przed wysłaniem do db

  5. Laravel - wstawiaj wiele wierszy i pobieraj identyfikatory