The JOIN
lists two tables, relating the data as if it were all part of a single table, composed of the two.
Here's a good explanation of how it works:
What's the difference between INNER JOIN and OUTER JOIN?
If you need multiple fields of beneficios
In your case, if you want all the benefits, but once only each product, you can do this organization through PHP, something like this:
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) die( $mysqli->connect_error );
// usei o * por nao saber seus campos. na pratica use só os que precisa
$mysqli->query( 'SELECT * FROM produto_destaque' ) or die($mysqli->error);
$res = $mysqli->use_result();
// criamos um array vazio para guardar os produtos
$produtos = array();
while ($row = $res->fetch_assoc()) {
// em cada produto acrescentamos um lugar para os beneficios
$row['beneficios'] = array();
// e guardamos a linha em $produtos
$produtos[$row['id_produtoDestaque']] = $row;
}
$res->free();
// em seguida, vamos pegar todos os beneficios
$mysqli->query( 'SELECT * FROM beneficio' ) or die($mysqli->error);
$res = $mysqli->use_result();
while ($row = $res->fetch_assoc()) {
// agora guardamos o beneficio na chave 'beneficios' do
// produto correspondente, que criamos no SELECT anterior
$produtos[$row['id_produtoDestaque']]['beneficios'][] = $row;
}
$res->free();
// aqui é só para conferir o resultado
print_r( $produtos );
If you need a field only
If you need a benefit-only field, as comrade @mauhumor commented, you can use group_concat
:
SELECT produto_destaque.*, GROUP_CONCAT( beneficio.beneficio )
FROM produto_destaque
INNER JOIN beneficio
ON produto_destaque.id_produtoDestaque = beneficio.id_produtoDestaque
GROUP BY produto_destaque.id_produtoDestaque
Working with group_concat