mysql查询不要获取所有帖子

时间:2013-04-30 15:57:13

标签: php mysql

我有一个MYSQL查询,他必须列出我要发布的所有帖子。但它不这样做。当我在“meaOrder”表中有相同的“ordCode”时,它会显示帖子。但是当我只在meaOrder上发帖时,我没有表现出来。我能做什么?

SELECT koden, wish, rnamn, bild, pris, cname, onsktext 
                FROM (
                SELECT m.wishText as onsktext, m.meaOID as midn, m.ordcode as koden, w.wish as wish, r.meaName as rnamn, r.meaImg as bild, 
                        r.meaPrice as pris, k.catName as cname from cats k, meals r, wishes w,
                        meaOrder m
                    join orders c on c.ordNR=4401
                    WHERE  c.ordStatus=1 AND m.ordNR=c.ordNR AND m.meaID=r.meaID AND m.wishesID=w.id
                        AND r.catID=k.catID
                ) T
                GROUP BY koden, rnamn, bild, pris, cname
                ORDER BY midn DESC

表订单 http://grab.by/m74E

表meaOrder http://grab.by/m74Q

2 个答案:

答案 0 :(得分:2)

在这种情况下,尝试使用RIGHT JOIN替换JOIN。差异在JOIN Syntax page in MySQL docs解释。简而言之 - 只有在两个连接表(内连接)中都有相应的行时,JOIN才会返回行。 LEFT JOIN / RIGHT JOIN返回其中一个表中的所有行和相应的行(如果它存在)来自另一个表(那些是外连接)

答案 1 :(得分:0)

你需要一个子选择吗?

这似乎涵盖了它: -

SELECT m.ordcode AS koden, w.wish AS wish, r.meaName AS rnamn, r.meaImg AS bild, r.meaPrice AS pris, k.catName AS cname, m.wishText AS onsktext 
FROM cats k 
INNER JOIN meals r ON r.catID = k.catID
INNER JOIN meaOrder m ON m.meaID = r.meaID 
INNER JOIN wishes w ON m.wishesID = w.id
INNER JOIN orders c ON m.ordNR = c.ordNR
WHERE  c.ordStatus = 1  
AND c.ordNR = 4401
GROUP BY m.ordcode, r.meaName, r.meaImg, r.meaPrice, k.catName
ORDER BY midn DESC