Mysql
 sql >> база данни >  >> RDS >> Mysql

Продукти на Magento импортират от базата данни с помощта на SQL заявка

Няма да публикувам цялата SQL заявка, защото е твърде досадно да се опитвате да извадите данни от Magento ръчно чрез базата данни, но ще кажа, че сте на прав път. За да намаля броя на присъединяванията за този вид неща, извличам моите attribute_ids от таблицата eav и ги използвам директно. Това означава, че моята заявка ще работи само на my инсталиране на Magento, но това не е проблем за мен.

select attribute_code, attribute_id, backend_type from eav_attribute
    where entity_type_id = (select entity_type_id from eav_entity_type where entity_type_code = 'catalog_product')
      and attribute_code in ('name', 'url_path', 'price', 'image', 'description', 'manufacturer');

Добив:

+----------------+--------------+--------------+
| attribute_code | attribute_id | backend_type |
+----------------+--------------+--------------+
| description    |           61 | text         |
| image          |           74 | varchar      |
| manufacturer   |           70 | int          |
| name           |           60 | varchar      |
| price          |           64 | decimal      |
| url_path       |           87 | varchar      |
+----------------+--------------+--------------+

Сега сте готови за досада! За всеки код на атрибут се присъединете към задната таблица (catalog_product_entity_$BACKEND_TYPE ) на дадения ви идентификатор на атрибут. За мен това би превърнало заявка sku/name/id (вашата заявка всъщност не трябва да се присъединява към продукти, тъй като използвате entity_id, за да направите присъединяването...) в:

select p.sku, p.entity_id, n.value name
    from catalog_product_entity p
    join catalog_product_entity_varchar n on n.entity_id = p.entity_id
  where n.attribute_id = 60;

Продължете да добавяте нов инструкция за присъединяване|where-clause|select-clause, докато не получите всички съединения, които първоначално сте искали.

Въпреки това Джонатан е прав, че използването на рамката на Magento за управление на тези данни би било много по-лесно, отколкото ръчно чрез базата данни. Освен ако нямате огромен брой продукти, които трябва да заредите наведнъж (обърнете внимание, че има две предположения и можете да работите за намаляването на едното), би било много по-стабилно да използвате рамката.

Надявам се това да помогне!

Благодаря, Джо




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сканиране на mysql таблица отдолу

  2. Командата python setup.py egg_info не успя с код за грешка 1 в /tmp/pip-install-fs0wmmw4/mysqlclient/

  3. Въведение във високата достъпност на базата данни за MySQL и MariaDB

  4. mysql заявка за избор на всички освен нещо

  5. Сблъсък на MySQL конектор и VC2010 заглавка