MYSQL将结果组合成单个项目以供显示

时间:2016-12-17 23:06:51

标签: php mysql

我目前遇到的问题是我在多个表上运行查询以获得结果,但它们都被认为是独立的。我已经尝试了几种方法来组合它们,但由于我的SQL知识有限,我似乎无法得到我想要发生的事情。

    SELECT DISTINCT t.*, s.quantity, s.rrp, ts.thumbnail, ts.bigpic, t.rating 
                FROM tyres t 
                INNER JOIN stocklevels s 
                ON t.stockcode = s.stockcode 
                LEFT JOIN tyre_treads ts    
                ON t.treadid = ts.recid 
                LEFT JOIN reseller r 
                ON s.city=r.recid 
                WHERE s.quantity> 0 AND s.rrp > 0

我尝试过添加GROUP BY t.recid和其他几个基本解决方案,但这似乎不起作用。我添加了一些可能有帮助的图片。

enter image description here

正如您所看到的,Toyo轮胎底部是相同的,只是城市和数量不同。

他们在网站上。

enter image description here

我想要将它们结合起来,以便他们说最少6个库存并且只在网站上显示一次。

1 个答案:

答案 0 :(得分:3)

只要你的SQK resukt中至少有一列包含不同的值(例如你的例子中的城市为"相同的"轮胎,分组通过赢得工作。你必须以某种方式调整你的SQL语句,它只选择具有相同值的列。特别是,你应该从你的sql中删除t.*并命名所有列(然后你就不再需要它了)。 然后,您将数量相加以获得此列的组合值。

SELECT r.recid, sum(s.quantity), s.rrp, ts.thumbnail, ts.bigpic, t.rating 
            FROM tyres t 
            INNER JOIN stocklevels s 
            ON t.stockcode = s.stockcode 
            LEFT JOIN tyre_treads ts    
            ON t.treadid = ts.recid 
            LEFT JOIN reseller r 
            ON s.city=r.recid 
            WHERE s.quantity> 0 AND s.rrp > 0
            GROUP BY recid