dez 032014
 

No mysql:

INSERT:
Inserindo dados em uma tabela com dados de outra tabela, onde o campo competência é fixo para todos os inserts:

INSERT INTO 999_final(ol,tipo,competencia) 
SELECT ol,aps_porte,'2014-12-01' AS competencia 
FROM 100_aps;

UPDATE:

Atualizar dados de uma tabela com dados de outra tabela:

UPDATE 999_final, 300_servidores
SET 999_final.servidores=300_servidores.servidores
WHERE 300_servidores.ol=999_final.ol AND 300_servidores.competencia=999_final.competencia

JOIN:

INNER JOIN com mais de um campo:

SELECT *
FROM `300_servidores`
INNER JOIN 999_final
ON ((300_servidores.ol=999_final.ol)AND(300_servidores.competencia=999_final.competencia))
 
#exemplo2:
 
SELECT 300_servidores.servidores,999_final.servidores
FROM 300_servidores
INNER JOIN 999_final
ON ((300_servidores.ol=999_final.ol)AND(300_servidores.competencia=999_final.competencia))

 

 

 

INNER JOIN com mais de um campo na junção:

dez 012014
 

Pois bem, para eliminar itens duplicados de um array unidimensional o comando array_unique() do PHP resolve perfeitamente, contudo, quando torna-se necessário realizar a operação com array multidimensionais (bi no caso) são necessários alguns truques.

Na lista quatro soluções com resultados idênticos e mesmo benckmarking:

<?php
 
 
$teste[0][0] = 'abc';
$teste[0][1] = 'def';
$teste[1][0] = 'ghi';
$teste[1][1] = 'jkl';
$teste[2][0] = 'mno';
$teste[2][1] = 'pql';
$teste[3][0] = 'abc';
$teste[3][1] = 'def';
$teste[4][0] = 'ghi';
$teste[4][1] = 'jkl';
$teste[5][0] = 'mno';
$teste[5][1] = 'pql';
$teste[6][0] = 'mno';
$teste[6][1] = 'pql';
$teste[7][0] = 'abc';
$teste[7][1] = 'va-kh';
 
 
print_r($teste);
 
//processamento de eliminação de duplicatas em array bidimensional:
 
 
 
	echo "<p>teste1</p>";
	$teste1 = multi2($teste);
	print_r($teste1);
 
 
 
echo "<p>teste2</p>";
$teste2=multi_unique($teste);
print_r($teste2);
 
 
echo "<p>teste3</p>";
$teste3=array_unique_multidimensional($teste);
print_r($teste3);
 
 
echo "<p>teste4</p>";
$teste4=multi3($teste);
print_r($teste4);
 
 
 
 
//------------------------------------------------------------------------------------------
function multi3($a)
{
foreach($a as $i => $suba)
    foreach($a as $i2 => $suba2)
        if($suba==$suba2 && $i!=$i2)
            unset($a[$i]);
return $a;
			}
 
function multi_unique($array) {
        foreach ($array as $k=>$na)
            $new[$k] = serialize($na);
        $uniq = array_unique($new);
        foreach($uniq as $k=>$ser)
            $new1[$k] = unserialize($ser);
        return ($new1);
		//from php.net , searching array_unique
    }
 
function array_unique_multidimensional($input)
{
    $serialized = array_map('serialize', $input);
    $unique = array_unique($serialized);
    return array_intersect_key($input, $unique);
}
 
function multi2($teste)
{
return array_map("unserialize", array_unique(array_map("serialize", $teste)));
}
?>