繁体   English   中英

将两个表的结果合并为一个记录集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM