2012-03-22 10 views
-1

第1と第2のSELECTステートメントにそれぞれ 'vanity_name'と 'name'を挿入しました。MYSQL selectステートメントのバランスをとる

不一致の数の列エラーが発生します。これは、バランスを維持するために両方の選択ステートメントに列を追加したので混乱します。

SQL文:

SELECT id, 
     vanity_name, 
     Date_format(DATE, '%M %e, %Y') AS DATE, 
     TYPE 
FROM (SELECT resume_id AS id, 
       date_mod AS DATE, 
       'resume' AS TYPE 
     FROM resumes 
     WHERE user_id = '1' 
     UNION ALL 
     SELECT profile_id, 
       name, 
       date_mod AS DATE, 
       'profile' 
     FROM profiles 
     WHERE user_id = '1' 
     ORDER BY DATE DESC 
     LIMIT 
     5) AS d1 
ORDER BY DATE DESC 
+1

selectに 'vanity_name'列がありません。 –

+3

コードを書式設定すると、エラーがかなりわかりやすくなります。コーディング標準を採用することをお勧めします。 –

+0

UNIONを使用するときは、数値、順序、列の型が一致することを確認してください。 –

答えて

3

のErmは、あなたの外側の選択で列、内側のSELECTでを持っています。

ID、vanity_name、日付、種類

ID、日付、TYPE括弧に基づいて

+0

ありがとう!私はこれが愚かな間違いだったと思う。両方の値を副選択に入れて、照会が機能しています。唯一のことは、私はvanity_name変数またはname変数にアクセスできません。私はresumes.vanity_nameとしてメインの選択でそれらを要求する必要がありますか? – jsuissa

0

、あなたが組合にしようとしています:

(SELECT resume_id AS id、date_mod AS date、 'resume' AS TYPE FROM re sumes

SELECT PROFILE_ID、名前、日付AS date_mod、プロファイルから 'プロフィール' ... LIMIT 5とのuser_id = '1'

、彼らは明らかに一致していません。あなたの腹を置き換えます。

関連する問題