[英]Combine results from two tables into one recordset
我有两个表项和内容。
items:|ID|menu|img
表
itemcontent |ID|parent|title|content
内容拥有者通过持有标题和内容的父母与项目配对
我想搜索所有项目,并打印出这些记录,这些记录在itemcontent表中没有标题,因此标题将被打印为“空”。 所以打印输出看起来像:
title: test1 and ID: items.ID=1 title: Empty and ID: items.ID=2 title: Empty and ID: items.ID=3 title: test2 and ID: items.ID=4 title: Empty and ID: items.ID=5 etc...
我尝试了以下内容,然后尝试了一些但无济于事:
SELECT items.*, itemcontent.title, itemcontent.content
FROM items, itemcontent
WHERE itemcontent.title LIKE '%$search%'
AND itemcontent.parent = items.ID
order by title ASC
一点帮助将不胜感激
由于您希望项目中的所有行在itemcontent中是否都匹配,如果要匹配则在itemcontent中有一个字段,因此需要使用OUTER JOIN:
SELECT items.*, COALESCE(itemcontent.title, 'empty'), itemcontent.content
FROM items LEFT OUTER JOIN itemcontent ON itemcontent.parent = items.ID
WHERE (itemcontent.title LIKE '%$search%' OR itemcontent.title IS NULL)
ORDER BY items.ID, itemcontent.title ASC
SQL方言之间的差异很小(例如,并非所有版本都具有COALESCE),因此,如果您想获得更准确的答案,请指明您使用的是哪种产品。
只是为了确保您可能要对itemcontent.title进行排序,而不仅仅是标题或选择itemcontent.title作为标题? 您在items表中是否有一个名为title的字段?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.