我正在获取产品和产品所属的类别以显示在页面上。另外,我得到属于不同表中的产品的一些数据。
我的查询如下:
// 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)时,它才会显示所有数据。
以上查询返回以下内容:
catid 17下没有产品。
当我将其更改为16(确实有产品)时,这是我的结果:
我想获取所有数据,所以当某个类别没有产品时,我仍然需要类别标题。
当产品不存在时,为什么一切都是空的?
答案 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