sql >> データベース >  >> RDS >> Mysql

#1222-使用されるSELECTステートメントの列数が異なります

    UNIONの最初のステートメントは、次の4つの列を返します。

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

    2つ目は6を返します 、*が展開されて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. AWSでのOracleデータベースのMySQLへの移行、パート2

    2. MySQL RAND()関数–MySQLでランダムな数値を生成します

    3. コマンドラインのsshを介してリモートマシンでMySQLクエリを実行します

    4. N-HibernatewithOracleの長い文字列はエラーを引き起こします