За последние 24 часа нас посетили 20473 программиста и 1096 роботов. Сейчас ищут 437 программистов ...

одинаковые имена полей в select из нескольких таблиц

Тема в разделе "MySQL", создана пользователем marlin, 28 авг 2020.

  1. marlin

    marlin Новичок

    С нами с:
    19 июн 2019
    Сообщения:
    61
    Симпатии:
    3
    Привет.
    Есть таблица u(a,b,c)
    и таблица v(b,c,d)
    Когда я делаю запрос просто декартово произведение
    select * from u,v
    просто когда к базе все 6 полей в результате, а когда через php оно мне в ассоциативном результате естественно столбцы b и c только правые оставляет.
    Обычно я в таких запросах обязательно все столбцы перечисляю с указанием имени таблицы и алиаса поля, для точности.
    Но вот заметил прям какие то огромные таблицы соединяются, нет чего то покороче чтобы в селекте указать и оно всем полям соединяемых таблиц назначило уникальное имя?
    Типа как нибудь select u.* ??? , v.* from u,v
    и чтобы в результате были столбцы u_a, u_b, u_c
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    table.* можно
    а нафига вообще такой запрос select * from u,v может пригодиться, просто из любопытства?
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.787
    Симпатии:
    646
    @ADSoft, в таком запросе обычно условие добавляют, чтобы отсеять лишние «произведения». Но вообще присоединяюсь к вопросу :)
    --- Добавлено ---
    @marlin, из одной таблицы можно выбирать все подряд с исходными именами, как выше показали, а из другой, «переименовывая» каждое поле с дублирующемся именем, например: `table2`.`field` [AS] `table2_field`
    --- Добавлено ---
    Реальный пример см. в этой демке: http://g09.ru/filter-l2
     
  4. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Код (Text):
    1. CREATE VIEW `Vv` AS SELECT `b` AS `x`, `c` AS `y`, `d` AS `z`)
    2. FROM `v`
    Код (Text):
    1. select * from u,Vv