Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Produk Magento diimpor dari database menggunakan kueri SQL

Saya tidak akan memposting seluruh kueri SQL karena terlalu membosankan untuk mencoba mendapatkan data dari Magento secara manual melalui database, tetapi saya akan mengatakan Anda berada di jalur yang benar. Untuk mengurangi jumlah gabungan untuk hal semacam ini, saya mengambil atribut_id saya dari tabel eav dan menggunakannya secara langsung. Ini berarti kueri saya hanya akan berfungsi di saya menginstal Magento, tetapi itu tidak menjadi masalah bagi saya.

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');

Hasil:

+----------------+--------------+--------------+
| 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      |
+----------------+--------------+--------------+

Sekarang Anda siap untuk kebosanan! Untuk setiap kode atribut, gabungkan dengan tabel backend (catalog_product_entity_$BACKEND_TYPE ) pada ID atribut yang Anda berikan. Bagi saya, ini akan mengubah kueri sku/nama/id (kueri Anda sebenarnya tidak perlu digabungkan dengan produk, karena Anda menggunakan entity_id untuk membuat gabungan...) menjadi:

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;

Lanjutkan menambahkan pernyataan gabungan baru|where-clause|select-clause set hingga Anda memiliki semua gabungan yang Anda inginkan.

Yang mengatakan, Jonathan benar bahwa menggunakan kerangka kerja Magento untuk mengelola data ini akan jauh lebih mudah daripada melakukannya secara manual melalui database. Kecuali Anda memiliki sejumlah besar produk yang perlu Anda muat sekaligus (perhatikan ada dua asumsi di sana, dan Anda dapat bekerja untuk menguranginya), akan jauh lebih kuat untuk menggunakan kerangka kerja.

Semoga membantu!

Terima kasih, Joe




  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 ERROR 1005 (HY000):Tidak dapat membuat tabel 'tmp' (errno:13)

  2. Mysql - Dapatkan baris dengan jumlah relasi terendah

  3. Nilai benih MySQL RAND() hampir berulang

  4. Cara Mengatasi Akses Ditolak Untuk Pengguna 'root'@'localhost' (menggunakan Kata Sandi:Ya) Saat Menghubungkan Database MySQL

  5. CodeIgniter Pilih Pernyataan dengan klausa Where