Выборка связанных данных из двух таблиц - MySQL

Узнай цену своей работы

Формулировка задачи:

На текущий момент запрос такого вида
SELECT id, product1, (
    SELECT price2
    FROM post_2 
    WHERE UPPER(post_2.post2) 
    LIKE concat('%',UPPER(product1),'%') 
    AND price2 > 0) 
FROM parser 
WHERE product1 
IS NOT NULL ORDER BY ID
в таблице parser есть столбец с названиями товара в таблице post_2 столбец post2 это название товара поставщика а столбец price2 это столбец с ценой на его товар ... не могу составить правильный запрос для поиска товара из значений первой таблицы и извлечения соответствующей цены ... Помогите пожалуйста

Решение задачи: «Выборка связанных данных из двух таблиц»

textual
Листинг программы
    error_reporting(E_ALL);
    ini_set('allow_url_fopen','1');//разрешаем открывать адреса
    ini_set('output_buffering','1');//output_buffering = On
    set_time_limit(0);//убираем лимит времени   
    $dbase=mysql_connect('localhost', 'parser', 'parser');
    mysql_select_db('parser');
    @mysql_query('set character_set_client="utf8"');
    @mysql_query('set character_set_results="utf8"');
    @mysql_query('set collation_connection="utf8_general_ci"');
    $query = "SELECT id, product1 FROM parser WHERE product1 IS NOT NULL ORDER BY ID";//запрос
 
    $result = mysql_query($query);//выполнение запроса  
    $rows = array();
    while($row = mysql_fetch_array($result))//ассоциативный массив
    {
        $rows[] = $row;
    }
    foreach($rows as $row)//перебор массива
    {
        $Id = $row['id'];//индекс
        $Product1 = $row['product1'];//название продукта
        $Post_2 = @mysql_query("SELECT price2 FROM post_2 WHERE MATCH (post2) AGAINST ('%" . $Product1 . "%') AND price2 > 0 LIMIT 1");
        $q = mysql_fetch_assoc ($Post_2);
        $Price = $q['price2']; 
        $Update = "UPDATE parser SET post2_price = " . $Price . " WHERE id =" . $Id;
        mysql_query($Update);
        echo "$Id - $Price<br>";
    }

Объяснение кода листинга программы

  1. Подключаем необходимые настройки для работы с MySQL и PHP
  2. Устанавливаем соединение с базой данных
  3. Выполняем запрос к базе данных, чтобы получить данные из таблицы 'parser'
  4. Полученные данные сохраняем в массив
  5. Для каждой строки в массиве выполняем запрос к таблице 'post_2' чтобы получить данные о цене продукта
  6. Сохраняем полученные данные в переменную $Price
  7. Формируем SQL запрос для обновления данных в таблице 'parser'
  8. Выполняем запрос на обновление данных в таблице 'parser'
  9. Выводим на экран ID продукта и его цену

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5