2012-12-27 13 views
0

在表“ogitems”中,我有一个名为“itemname”,“month”和“price”的列。选择两行具有相同列值的地方并回显它们

有重复项目,按月排列。

我想检查“itemname”以查看是否有任何行具有相同的itemname值,如果是,请在最后两个月中回显“itemname”以及这两个月的定价。

实施例:

“ITEMNAME”=奶酪切达

干酪切达是在几个月11和12发现(所以有两个记录/干酪切达行)。 11 51 12,同时有54

我想回显信息到一个锚标记“价”,“价” ...

<a href="pricetrend.php?date=<?php echo "" . $row['month'] . "" ?>&price1=<?php echo $price1; ?>&price2=<?php echo $price2; ?>&item=<?php echo "" . $row['itemname'] . ""?>;"> 

基本上,我试图抓住这两个一个项目的最近价格并将它们回显到此锚标签中。预先感谢任何帮助!

回答

0

我假设你的月是date field,这应该工作

SQL小提琴链接:http://sqlfiddle.com/#!2/d63a0/4

SELECT * FROM (
       SELECT 
         o.itemname, 
         o.month, 
         (SELECT price FROM ogitems i WHERE i.itemname = o.itemname AND i.month<o.month ORDER BY MONTH DESC LIMIT 1) AS last_month_price, 
         o.price AS current_month_price 
       FROM 
        ogitems o 
       ORDER BY 
        o.month DESC 

      ) AS items 
GROUP BY 
    items.itemname 
HAVING 
    items.last_month_price IS NOT NULL 
+0

完美!谢谢。 – Alex

0
select * from ogitems where itemname='CHEESE CHEDDAR' order by month desc limit 2 

这个SQL语句应该解决您的问题

<?php 
    $result = mysql_query("select * from ogitems where itemname='CHEESE CHEDDAR' order by month desc limit 2") 
    while ($row = mysql_fetch_assoc($result)) { 
    echo $row["itemname"]; 
    echo $row["month"]; 
    echo $row["price"]; 
    } 
?> 
相关问题