повторяющиеся имена столбцов в запросе - PullRequest
0 голосов
/ 04 августа 2011

Я не думаю, что это возможно, но я думал, что все равно спрошу.

У меня запрос MySql 5. + как таковой ...

SELECT p.*, u.* FROM princess p JOIN unicorn u ON p.id = u.princess_id

Это достаточно любезно, чтобы вернуть мне всех принцесс и единорогов;). Проблема в том, что возвращенный набор результатов может содержать повторяющиеся имена столбцов (не очень). Если в обеих таблицах есть столбец с именем name, как я могу его дифференцировать без явного кодирования псевдонима, например p.name as 'princess_name' и u.name as 'unicorn_name'?

Кроме того, я не могу использовать индекс столбца, поэтому, если нет лучшего способа, я просто сам дам код для всех псевдонимов.

Ответы [ 6 ]

4 голосов
/ 04 августа 2011

SELECT * - плохая идея по нескольким причинам, одна из которых вы только что нашли.Используйте явный список столбцов и создайте собственные псевдонимы.

1 голос
/ 04 августа 2011

Это невозможно, а также старайтесь избегать использования * в SQL. Это плохая привычка. Пишите все свои поля лучше для удобства чтения, И не забывайте об этом!

1 голос
/ 04 августа 2011

Вам придется самим кодировать все псевдонимы. ;) В любом случае, избавиться от этих * не будет плохой вещью.

0 голосов
/ 22 июля 2015

String query1 = "ПОКАЗАТЬ КОЛОННЫ ИЗ ФАЙЛА ЗАГРУЗКИ LIKE '" + label + "'"; ResultSet rs = st.executeQuery (query1);

                          while(rs.next())
                          {
                         //   int rs = 0;

                              pw.println("<script>alert(' throw new DuplicateName()')</script>"); 

                              pw.write("Error in file insertion"+rs);
                              response.sendRedirect("AddAttribute.jsp?status='Error'");

                          }

                              String query ="ALTER TABLE uploadfile ADD  "+label+" varchar (10)";
                               System.out.println("welcome in java ");

                              int rs1=st.executeUpdate(query);


                               response.sendRedirect("afterlabel_updatefile.jsp?status='success'");

                           //  response.sendRedirect("AdminHome.jsp"); 
0 голосов
/ 04 августа 2011

Если вы выбираете строки в виде массива, вы можете полагаться на порядок данных.Если вы выбираете их как карту / словарь ... вам, вероятно, не повезло.На самом деле, псевдонимы - намного лучшая идея.Звезды выбирают плохую форму.

0 голосов
/ 04 августа 2011

Вам придется вручную кодировать псевдонимы.И это хорошо.Всегда полезно явно упомянуть все имена столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...