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

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

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

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

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

textual
Листинг программы
  1.     error_reporting(E_ALL);
  2.     ini_set('allow_url_fopen','1');//разрешаем открывать адреса
  3.     ini_set('output_buffering','1');//output_buffering = On
  4.     set_time_limit(0);//убираем лимит времени  
  5.     $dbase=mysql_connect('localhost', 'parser', 'parser');
  6.     mysql_select_db('parser');
  7.     @mysql_query('set character_set_client="utf8"');
  8.     @mysql_query('set character_set_results="utf8"');
  9.     @mysql_query('set collation_connection="utf8_general_ci"');
  10.     $query = "SELECT id, product1 FROM parser WHERE product1 IS NOT NULL ORDER BY ID";//запрос
  11.  
  12.     $result = mysql_query($query);//выполнение запроса 
  13.     $rows = array();
  14.     while($row = mysql_fetch_array($result))//ассоциативный массив
  15.     {
  16.         $rows[] = $row;
  17.     }
  18.     foreach($rows as $row)//перебор массива
  19.     {
  20.         $Id = $row['id'];//индекс
  21.         $Product1 = $row['product1'];//название продукта
  22.         $Post_2 = @mysql_query("SELECT price2 FROM post_2 WHERE MATCH (post2) AGAINST ('%" . $Product1 . "%') AND price2 > 0 LIMIT 1");
  23.         $q = mysql_fetch_assoc ($Post_2);
  24.         $Price = $q['price2'];
  25.         $Update = "UPDATE parser SET post2_price = " . $Price . " WHERE id =" . $Id;
  26.         mysql_query($Update);
  27.         echo "$Id - $Price<br>";
  28.     }

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут