Выборка связанных данных из двух таблиц - MySQL
Формулировка задачи:
На текущий момент запрос такого вида
в таблице parser есть столбец с названиями товара в таблице post_2 столбец post2 это название товара поставщика а столбец price2 это столбец с ценой на его товар ... не могу составить правильный запрос для поиска товара из значений первой таблицы и извлечения соответствующей цены ... Помогите пожалуйста
Листинг программы
- 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
Решение задачи: «Выборка связанных данных из двух таблиц»
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>";
- }
Объяснение кода листинга программы
- Подключаем необходимые настройки для работы с MySQL и PHP
- Устанавливаем соединение с базой данных
- Выполняем запрос к базе данных, чтобы получить данные из таблицы 'parser'
- Полученные данные сохраняем в массив
- Для каждой строки в массиве выполняем запрос к таблице 'post_2' чтобы получить данные о цене продукта
- Сохраняем полученные данные в переменную $Price
- Формируем SQL запрос для обновления данных в таблице 'parser'
- Выполняем запрос на обновление данных в таблице 'parser'
- Выводим на экран ID продукта и его цену
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д