Verbinden Sie die beiden Tabellen in Magento 2

7

Ich versuche, zwei Tabellen zu verbinden, aber es wird ein falsches Ergebnis zurückgegeben. Könnten Sie mir bitte vorschlagen, wie ich es schreiben soll?

Daten : Aus meiner benutzerdefinierten Tabelle ( product_id,email,id) haben Product_id.

Erwartetes Ergebnis : Verbinden Sie die beiden Tabellen ( custom_tableund catalog_product_entity), um das anzuzeigenProduct Name, Sku and Email_id

Könnten Sie mir bitte sagen, wie ich es schreiben soll?

M_N
quelle

Antworten:

11

Das funktioniert bei mir. Die einzige Änderung zwischen Magento 1 und Magento 2 besteht darin, wie der Tabellenname abgerufen wird:

$collection->getSelect()->joinLeft(
   ['admin'=>$collection->getTable('admin_user')],
   'main_table.admin_user_id = admin.user_id',
   ['admin_username'=>'admin.username']);
Dallas Clarke
quelle
0

Ich werde so etwas tun:

    $connection = $this->_objectManager->create('\Magento\Framework\App\ResourceConnection');
    $conn = $connection->getConnection();
    $select = $conn->select()
        ->from(
            ['main_table' => 'catalog_product_entity'],
            [
                'main_table.sku',
                'custom_table.email_id'
            ]
        )
        ->join(
            ['custom_table' => 'custom_table'],
            'main_table.entity_id = custom_table.product_id'
        );

    $data = $conn->fetchAll($select);
Sarjan Gautam
quelle