2016-05-17 6 views
0

概要:のmysql - 重複列名

  • がそれらを取った後tableStore
  • でそれらの結果を保存する両方のテーブルにあるentry_idにとそれらを結ぶ2つのテーブル
  • (これは動作します)
  • を持っていますtableStoreの値を降順でソートします。フィールド番号:

コード:

SELECT * FROM 
    (SELECT * FROM 
     (SELECT * 
      FROM exp_channel_data 
      LEFT JOIN exp_channel_titles 
      ON exp_channel_data.entry_id = exp_channel_titles.entry_id 
      WHERE field_id_13 > '1' 
      ORDER BY field_id_13 
      ASC LIMIT 6 
    ) AS tableStore) 
AS tableStore 
ORDER BY field_id_13 DESC 

ERROR:エラーが発生しませんので、どのように私は上記のコードを修正しない - : -

質問を "重複列名 'たentry_id'"?

答えて

0

重複した列として、選択ステートメントの1つを定義する必要があるという問題がありました。

SELECT * FROM 
    (SELECT * FROM 
     (SELECT exp_channel_data.entry_id, exp_channel_data.field_id_13, exp_channel_data.field_id_11, exp_channel_titles.title 
     FROM exp_channel_data 
     LEFT JOIN exp_channel_titles 
     ON exp_channel_data.entry_id = exp_channel_titles.entry_id 
     WHERE field_id_13 > '1' 
     ORDER BY field_id_13 
     ASC LIMIT 6 
    ) AS tableStore) 
AS tableStore ORDER BY field_id_13 DESC 
1

私はすべてのその余分なネスティングを廃止し、代わりにこれをより簡単に書きますよう:

SELECT * FROM (
       SELECT ecd.entry_id, 
         ecd.field_id_13, 
         ecd.field_id_11, 
         ect.title 
       FROM exp_channel_data ecd 
       LEFT JOIN exp_channel_titles ect 
       ON ecd.entry_id = ect.entry_id 
       WHERE ecd.field_id_13 > '1' 
       ORDER BY ecd.field_id_13 ASC 
       LIMIT 6 
      ) 
ORDER BY field_id_13 desc;