2016-05-09 2 views
0

Мне нужна помощь по следующему запросу. Один стол с ценой < = средняя цена в той же таблице по типу продукта, определенной по результатам «Тип» в таблице3Строки запроса в разных таблицах

Мне нужно представить результаты сравнения между величиной бюджетной суммы и средним значением цены в таблицы продуктов определенного типа. Выбранные продукты ниже или равны по цене в среднем количестве. Продукты в таблице имеют столбец, который сортирует их по типу. сравнение будет включать только продукты этого типа. До сих пор у меня есть это:

<?php 
$presupuesto = 250; 
$catprom = 0; 

function mostrarDatos ($resultado) { 
if ($resultado !=NULL) { 
echo "- Promedio de Categoria ".'Type'." es:".$resultado['total_average']."<br/>";} 
else {echo "<br/>No hay más datos!!! <br/>";} 
} 
$link = mysqli_connect("db", "user", "pass"); 
mysqli_select_db($link, "db"); 
$result1 = mysqli_query($link, "SELECT AVG(Price) as total_average FROM`Table2` GROUP BY Type"); 

$result2 = mysqli_query($link, "INSERT INTO Table3 (Producto_ID, Name, Description, Price) SELECT Type FROM Table2 WHERE Price <= total_average;"); 
while ($fila = mysqli_fetch_array($result1)){ 
mostrarDatos($fila); 
} 
//while ($fila = mysqli_fetch_array($result2)){ 
// mostrarDatos3($fila); 
//} 
mysqli_free_result($result1); 
//mysqli_free_result($result2); 
mysqli_close($link); 
?> 

Я знаю, что я использую старый PHP, но опять же, нету найденные ресурсы, которые представляют это в PDO

Sample table1: 
Budget_ID|Budget 
---------|------ 
01  |300 

Таблица 2:

Product_ID|Name |Description  |Price|Type 
----------|-----|----------------|-----|---- 
01  |Milk |1 Ltr of Milk |200 |Drink 
02  |Sugar|1 Pound of Sugar|600 |Sweetener 
03  |Tea |1 Ltr of Tea |250 |Drink 

Таблица 3:

Product_ID|Name |Description  |Price|Type 
    ----------|-----|----------------|-----|---- 
    01  |Milk |1 Ltr of Milk |200 |Drink 

ответ

0

Вы можете рассчитывать средние во-первых, и выберите все ниже этого значения.

sql fiddle

select p.* from products p 
where p.price < (select sum(e.price)/count(e.id) from products e)  
+0

я сделал в SELECT, AVG ... –

+0

могли бы вы разработать немного больше на том, что р. * Делает и p.price или e.price или е см, пожалуйста. Я никогда не видел, чтобы они так сокращались. –

+0

Ваш ответ действительно дал результаты, которые я изначально задал. Благодарю. –

Смежные вопросы