За последние 24 часа нас посетил 17721 программист и 1618 роботов. Сейчас ищут 1663 программиста ...

Помогите с задачей

Тема в разделе "PHP и базы данных", создана пользователем Elena132, 27 окт 2017.

  1. Elena132

    Elena132 Новичок

    С нами с:
    27 окт 2017
    Сообщения:
    5
    Симпатии:
    0
    Есть две таблицы в mysql
    1) avto
    id | int
    FIO | var(100)
    id_adress | int
    2) adress
    id | int
    adressuser | var(100)

    Вся суть вопроса заключается в том что я не понимаю как через запрос mysql найти имя человека (FIO) по адрессу ( adressuser)
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.797
    Симпатии:
    1.331
    Адрес:
    Лень
    плейсхолдер..
    SELECT
    FIO​
    FROM
    adress t2​
    LEFT JOIN
    avto t1
    ON t1.id_adress = t2.id​
    WHERE
    t2.adressuser = ?​
     
  3. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    А вскидку я бы сделал так:
    Код (Text):
    1. SELECT fio
    2. FROM avto
    3. WHERE (avto.id_adress = adress.id) && (adress.adressuser LIKE :kusok_adr)
    Все элементарно, Ватсон =))
    SELECT fio - выбираем по полю фио
    FROM avto - с таблицы авто
    WHERE (avto.id_adress = adress.id) && (adress.adressuser LIKE :kusok_adr - самый смак =))
    Переведу так: ГДЕ (или ПРИ УСЛОВИИ) (avto.id_adress = adress.id) И (adress.adressuser LIKE :kusok_adr)
    Что была интрига, о LIKE почитай сам.
    kusok_adr - просто переменная в запросе, тот кусок адреса, по которому надо искать ФИО

    Ну собственно лайк будет не плох тем, что в предполагаемой базе весь адрес вбит в одну строку, можно искать кусками и прочее, просто задавая значение переменной

    Из ФИО выделить имя, это уже отдельная история =) или под имя подразумевалось: данные с поля fio?
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @AlexG, случайно "Вскидка", принимая Ваше предложение не подумала, из каких глубин астрала будет добывать adress.adressuser?
     
  5. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Не понял, в базе же есть поле adressuser | var(100) в таблице adress, значит в нем возможно хранятся какие-то данные. Или речь идет о связке 2 таблиц, так вот она WHERE (avto.id_adress = adress.id)
     
    #5 AlexG, 13 ноя 2017
    Последнее редактирование: 13 ноя 2017
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    Да, только нет ни упоминания второй таблицы в table_references после from, ни join...
     
  7. AlexG

    AlexG Новичок

    С нами с:
    10 ноя 2017
    Сообщения:
    18
    Симпатии:
    0
    Ну так дописать, или религия не позволяет? Я же сказал на вскидку, писал сразу ответ, без проверки на чем-либо. Если есть WHERE (avto.id_adress = adress.id) + еще условие, зачем сюда еще лепить JOIN? Это эквивалентные логические операции.