Query with INNER JOIN and choose loop reference

2

Now, I'm querying two tables with INNER JOIN like this:

if (! $db->Query("select * from cad_produto inner join cad_variacoes on cad_variacoes.id_produto = cad_produto.id")) 

$db->Kill(); 

while (! $db->EndOfSeek()) {  
  $row = $db->Row();

  $titulo = $row->titulo; //TABELA 1

  $valor = $row->valor; //TABELA 2
  $quantidade = $row->quantidade; //TABELA 2
  $id = $row->id_produto; //TABELA 2
}

TABLE 1:

 +----------------------------+
 |           PRODUTO          |
 +------------+---------------+
 | ID         | TITULO        |
 | 1          | arroz         |
 |            |               |
 |            |               |
 |            |               |
 +------------+---------------+ 

TABLE 2:

 +---------------------------+
 |         ATRIBUTO 1        |
 +------------+--------------+
 | ID_PRODUTO | VALOR        |
 | 1          | 10           |
 |            |              |
 |            |              |
 |            |              |
 +------------+--------------+

 +---------------------------+
 |         ATRIBUTO 2        |
 +------------+--------------+
 | ID_PRODUTO | QUANTIDADE   |
 | 1          | 5            |
 | 1          | 6            |
 |            |              |
 |            |              |
 +------------+--------------+

I need to loop loop only to appear loop AS REFERENCE TO THE QUANTITY OF LINES FROM TABLE 1 AND NOT FROM TABLE 2 , but the opposite is happening. It's coming like this:

ID(dado da tabela 2)    TITULO    VALOR QUANTIDADE
1                       ARROZ      10       5

ID(dado da tabela 2)    TITULO    VALOR QUANTIDADE
1                       ARROZ      10       6

I need only one line and its attributes.

  

UPDATE

It was supposed to look like this, taking a random value from table 2:

ID(dado da tabela 2)    TITULO    VALOR QUANTIDADE
1                       ARROZ      10       5

I can not put LIMIT 1, because when there are two products it will look like this:

ID(dado da tabela 2)    TITULO    VALOR QUANTIDADE
1                       ARROZ      10       5

ID(dado da tabela 2)    TITULO    VALOR QUANTIDADE
2                       FEIJAO     11       1       
    
asked by anonymous 21.08.2015 / 18:10

1 answer

1

Just "count" the IDs of the table you want, so you can do something like this:

SELECT cad_produto.*,cad_variacoes.*, count(DISTINCT cad_produto.id) qtd
FROM cad_produto
INNER JOIN cad_variacoes ON cad_variacoes.id_produto = cad_produto.id

Where count (DISTINCT cad_product.id) will count the unique IDs, even if JOIN makes it repeat.

    
23.08.2015 / 23:57