За последние 24 часа нас посетили 17780 программистов и 1622 робота. Сейчас ищут 1855 программистов ...

Помогите с запросом, с ног уже сбился

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

  1. lamok

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

    С нами с:
    16 июн 2008
    Сообщения:
    64
    Симпатии:
    1
    Добрый день.
    Есть таблица category у нее есть поля
    id, name, parent_id, url

    Вот идет у меня запрос и нужно найти все под категории к запрошенной категории но при этом мне нужны все данные по самой категории (поля name и url родителя)

    Вот так выбираются все под категории, как добавить данные родительской категории (поля name и url родителя)?

    Код (Text):
    1. SELECT * FROM category WHERE category.parent_id=(SELECT id  FROM category WHERE url="'.$parent_url.'")
    Подскажите пожалуйста.
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Код (Text):
    1. SELECT * FROM `category` WHERE `url` = 'parent/one'
    2. OR `parent_id` IN (
    3.   SELECT `id` FROM `category`
    4.     WHERE `url` = 'parent/one'
    5. );
     
  3. lamok

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

    С нами с:
    16 июн 2008
    Сообщения:
    64
    Симпатии:
    1
    Не совсем так.
    Попробую прояснить, вот записи таблицы
    id, name, parent_id, url
    1 php 0 php_url
    2 wordpress 1 wordpress_url

    Код (Text):
    1. SELECT * FROM category WHERE category.parent_id=(SELECT id  FROM category WHERE url="'php_url")
    выведет запись с ид=2, а мне нужно чтобы к этим данным добавить и все данные с ид=1 т.е. присоединить.
    Пример вывода:
    id=1 name=wordpress parent_id=1 url=wordpress_url parent_name=php parent_url=php_url
    соответственно parent_name и parent_url получить через переименование полей
    так можно как-то сделать?
     
    #3 lamok, 5 дек 2017
    Последнее редактирование: 5 дек 2017
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Лучше бы этого не делали, а то вместо прояснения наступило затуманивание ))
    Буду надеяться, что понял правильно. Пример в песочнице
    Код (Text):
    1. SELECT
    2.     `c1`.*,
    3.     `c2`.`name` AS `parent_name`,
    4.     `c2`.`url` AS `parent_url`
    5. FROM
    6.     `category` `c1`
    7.     LEFT OUTER JOIN `category` `c2` ON(`c2`.`id` = `c1`.`parent_id`)
    8. WHERE
    9.     `c1`.`url` = 'wordpress_url'
     
    denis01 и lamok нравится это.