[MySQL] Работа с 3мя таблицами

Тема в разделе "Базы данных", создана пользователем LEXAlForpostl, 27 ноя 2017.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    750
    Симпатии:
    227
    Здравствуйте.
    t1
    id | name | result1_id | result2_id
    1 | Ivan | 1 | NULL
    2 | Petr | NULL | 4
    3 | Anna | NULL | NULL

    result1
    id |name
    1 | Krov

    result2
    id |name
    4 | Davlenie

    Как сделать выборку из t1, только в полях result1_id и result2_id заменить айди на сами названия?
    Спасибо.
     
  2. Роман Дмитриев

    Роман Дмитриев Создатель

    Регистр.:
    16 авг 2015
    Сообщения:
    24
    Симпатии:
    4
    SELECT t1.name, r1.name, r2.name
    FROM t1 left join result1 r1 on t1.result1_id =r1.id left join result2 on t1.result2_id =r2.id
     
  3. BaBL

    BaBL

    Регистр.:
    13 ноя 2012
    Сообщения:
    164
    Симпатии:
    106
    Так и добавитть:

    Код:
    SELECT t1.name, r1.name, r2.name
    FROM t1 left join result1 r1 on t1.result1_id =r1.id left join result2 on t1.result2_id =r2.id
    Where t1.date > '2017-10-01'
     
    LEXAlForpostl нравится это.
  4. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    750
    Симпатии:
    227
    В итоге хочу получить
    Ivan Krov NULL
    Petr NULL Davlenie
    Anna NULL NULL
    <-------------- добавлено через 1951 сек. -------------->
    Супер, как добавить еще условие
    Where t1.date>2017-10-01
    <-------------- добавлено через 2966 сек. -------------->
    Unknown column 't1.date' in 'where clause'
     
  5. Роман Дмитриев

    Роман Дмитриев Создатель

    Регистр.:
    16 авг 2015
    Сообщения:
    24
    Симпатии:
    4
    Попробуйте так:
    SELECT t1.name, r1.name, r2.name
    FROM t1 left join result1 r1 on t1.result1_id =r1.id left join result2 on t1.result2_id =r2.id
    Where t1.`date` > '2017-10-01'
     
    Последнее редактирование: 27 ноя 2017
    apostos и LEXAlForpostl нравится это.
  6. apostos

    apostos Создатель

    Регистр.:
    6 ноя 2017
    Сообщения:
    21
    Симпатии:
    5
    Там разве не все что после where должно быть в кавычках?
     
  7. Роман Дмитриев

    Роман Дмитриев Создатель

    Регистр.:
    16 авг 2015
    Сообщения:
    24
    Симпатии:
    4
    Ну, что вы.. Проблема в том, что кто-то любит зарезервированные слова использовать в качестве названий полей.
     
  8. apostos

    apostos Создатель

    Регистр.:
    6 ноя 2017
    Сообщения:
    21
    Симпатии:
    5
    Действительно, упустил этот нюанс.
    Хотя я всегда пользуюсь кавычками просто для удобочитабельности запросов.
     
  9. artemka9p

    artemka9p Создатель

    Регистр.:
    15 окт 2017
    Сообщения:
    16
    Симпатии:
    4
    як на мене лучше не юзать зарезервированные слова в названиях ни переменных ни таблиц / столбюцов
    чревато проблемами
     
  10. paracommando

    paracommando Писатель

    Регистр.:
    8 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    Как сохранить массив в бд

    спарсить .TXT файл в базу MySQL с помощью PHP после этого вывести данные из

    базы данных в браузер с возможностью изменить данные ( картинка "Вид в браузере" )
     
    Последнее редактирование модератором: 28 янв 2018