2016-05-17 2 views
0

Обзор:MySQL - Дублированный имя столбца

  • есть 2 таблицы
  • соединив их с entry_id, который в обеих таблицах (это работает)
  • хранящей эти результаты в tableStore
  • затем принимая те значения в tableStore его сортировку в порядке убывания по field_id_13

КОД:

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 

ОШИБКА: - «Дублировать имя столбца" entry_id»

Вопрос: - как это исправить приведенный выше код, так что ошибка не бывает?

ответ

0

Проблема была в том, что повторяющийся столбец указывал, что один из операторов выбора необходимо определить больше.

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; 
Смежные вопросы