Выборка связанных данных из двух таблиц - 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 продукта и его цену
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д