За последние 24 часа нас посетили 14894 программиста и 1709 роботов. Сейчас ищут 1024 программиста ...

Помогите новичку пожалуйста!

Тема в разделе "PHP для новичков", создана пользователем Кирилл123developerджун, 6 июн 2024.

Метки:
  1. Кирилл123developerджун

    С нами с:
    6 июн 2024
    Сообщения:
    1
    Симпатии:
    0
    Всем доброго времени суток! Я начал изучать php и mysql , много разного видео смотрел , то так и не нашел ответа, подскажите пожалуйста если не сложно, у меня есть база данных там 2 таблицы table1 и table2, в table1 поля table1.id и table1.pic_name а во второй table2.id table2.picture_id table2.url к примеру в table1.id есть три айди 1.3.4 а во второй таблице есть 4 записи в table2.picture_id 1,2,3,4 и вот что я хочу и не понимаю как это проверить я хочу взять все select * from table2 потом while и хочу проверить если id из table2 есть в table1 то ничего не трогаем , а если нет то удалить эту строку, в итоге нужно чтоб строка где id 2 в table2 удалилась! Спасибо если поможете
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.854
    Симпатии:
    748
    Адрес:
    Татарстан
    left join?
     
    miketomlin и Вероломство нравится это.
  3. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    @ADSoft можно просто join он по дефолту делает left :rolleyes:
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    не inner ?
     
    miketomlin и Вероломство нравится это.
  5. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    915
    Симпатии:
    143
    вроде LEFT
     
    Вероломство нравится это.
  6. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    626
    Симпатии:
    24
    @Sail читал как-то статью на Хабре, там автор расклад давал с тестами и примерами доказывая: по дефолту join выполняет inner join, который по сути и есть left join
     
  7. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    915
    Симпатии:
    143
    А ведь реально INNER JOIN (и это не LEFT JOIN) по умалочанию.
     
    miketomlin нравится это.
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.839
    Симпатии:
    651
    Конечно.
    --- Добавлено ---
    LEFT JOIN – это из разряда OUTER. И LEFT/RIGHT – обязательные модификаторы, чтобы не получить INNER/CROSS (в мускуле INNER/CROSS – полные эквиваленты).
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.839
    Симпатии:
    651
    Можно LEFT JOIN с условием отбора pic_name IS NOT NULL, а можно просто INNER.
    --- Добавлено ---
    Условие поиска в любом случае указываете (ON table1.id=table2.picture_id).
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.839
    Симпатии:
    651
    Вообще какой-то значимый id картинки из table2 при отсутствии (имени) картинки в table1 – это просто мусор. Лучше сохраняй в table2 NULL или id какой-то дефолтной надписи/картинки (такой id может быть даже равен нулю).