使用此查询时,为什么我的结果为空

时间:2018-04-06 13:07:32

标签: mysql sql database

我正在获取产品和产品所属的类别以显示在页面上。另外,我得到属于不同表中的产品的一些数据。

我的查询如下:

    // Asynchronous download PDF
    PDFJS.getDocument(url)
      .then(function(pdf) {
        return pdf.getPage(1);
      })
      .then(function(page) {
        // Set scale (zoom) level
        var scale = 1.2;

        // Get viewport (dimensions)
        var viewport = page.getViewport(scale);

        // Get canvas#the-canvas
        var canvas = document.getElementById('the-canvas');

        // Fetch canvas' 2d context
        var context = canvas.getContext('2d');

        // Set dimensions to Canvas
        var resolution =  2 ; // for example

        canvas.height = resolution*viewport.height; //actual size
        canvas.width = resolution*viewport.width;

       canvas.style.height = viewport.height; //showing size will be smaller size
        canvas.style .width = viewport.width;

        // Prepare object needed by render method
        var renderContext = {
          canvasContext: context,
          viewport: viewport,
          transform: [resolution, 0, 0, resolution, 0, 0] // force it bigger size
        };

        // Render PDF page
        page.render(renderContext);
      });
enter code here

我的问题是,当一个类别中没有任何文章时,所有结果都是空的。因此,在没有属于该类别的产品的类别页面上,它也不会显示类别标题。

只有当某个类别下面有产品(snm_content)时,它才会显示所有数据。

以上查询返回以下内容:

enter image description here

catid 17下没有产品。

当我将其更改为16(确实有产品)时,这是我的结果:

enter image description here

我想获取所有数据,所以当某个类别没有产品时,我仍然需要类别标题。

当产品不存在时,为什么一切都是空的?

1 个答案:

答案 0 :(得分:1)

我认为你想要外连接。我不完全理解GROUP BY,但这可能会做你想要的:

SELECT cnt.id as content_id, cnt.title as content_title, cnt.featured, cnt.alias as content_alias, cnt.catid, cnt.images, cnt.state, cnt.introtext, cat.id as cat_id, cat.title as cat_title, cat.alias as cat_alias,
       MAX(case when f.field_id = 4 then f.value end) as prijs,
       MAX(case when f.field_id = 5 then f.value end) as prijsoud
FROM snm_categories cat LEFT JOIN
     snm_content cnt
     ON cnt.catid = cat.id AND cnt.state = 1 LEFT JOIN
     snm_fields_values f 
     ON cnt.id = f.item_id 
WHERE cat.id = 17
GROUP BY cnt.id, cnt.title, cnt.featured, cnt.alias, cnt.catid, cnt.images, cnt.state, cnt.introtext, cat.id, cat.title, cat.alias