it-swarm.dev

Come scrivere un'istruzione Select Select?

Questo Metodo per la creazione di una sottoquery usando JDatabase fornisce alcune informazioni importanti e penso che sarebbe utile avere un metodo concordato di sottoquery documentato. Mi sono imbattuto in questo perché voglio fare la stessa cosa ma come un'istruzione insert. Il più vicino che abbia mai avuto è stato replicato l'intera tabella perché per qualche motivo continuo a perdere le colonne.

$query = $db->getQuery(true);
$pre = $db->getQuery(true);

// Insert columns.
$columns = array('user_id', 'title', 'ordering', 'published', 'description');

$now = $query->currentTimestamp();
// Insert values.

$pre->insert($db->qn('#__table'))->columns($db->qn($columns));


// Prepare the insert query.
$query->select(array(
                    $db->q('') . ' AS id',
                    $db->qn('user_id'),
                    $db->qn('c.name', 'title'),
                    $db->q('1') . ' AS published',
                    $db->q('') . ' AS ordering',
                    $db->q('') . ' AS created_by',
                    $now .  ' AS created_on',
                    $db->q('') . ' AS modified_by',
                    $db->q('') . ' AS modified_on',
                    )
            )
            ->from($db->qn('#__other_table', 'c'));

    $query = $pre . $query ;

    // Set the query using our newly populated query object and execute it.
    $db->setQuery($query);

    $db->execute();
4
poproar

Sebbene questa sia una vecchia domanda, potrebbe essere utile per gli altri. Ecco l'inserimento per selezionare la query utilizzando JDatabase.

Crea una query di selezione utilizzando JDatabase

$querySelect = $db->getQuery(true)
  ->select('id, title')
  ->from('sometable');

Ora la tua query di inserimento

$queryInsert = $db->getQuery(true)
  ->insert('anothertable')
  ->columns($db->qn(array('id','title')))
  ->values($querySelect)

Spero che sia di aiuto.

2
Nagarjun

Devi digitare quali valori vuoi inserire

$pre->insert($db->qn('#__table'))->columns($db->qn($columns))->values(here values);
4
turson