Php 并集并联接3个表,其中一个表不';我没有相同的行数

Php 并集并联接3个表,其中一个表不';我没有相同的行数,php,sql,Php,Sql,对于这样的查询 $query = " SELECT t1.title, t1.content, t2.image, t2.tags FROM blog1posts t1, blog1imagestags t2 WHERE id = :id UNION ALL SELECT t1.title, t1.content, t2.image, t2.tags FROM blog2posts t1, blog2imagestags t2 WHERE id = :id UNION ALL //TH

对于这样的查询

$query = "
SELECT t1.title, t1.content, t2.image, t2.tags
FROM blog1posts t1, blog1imagestags t2 
WHERE id = :id

UNION ALL

SELECT t1.title, t1.content, t2.image, t2.tags
FROM blog2posts t1, blog2imagestags t2 
WHERE id = :id

UNION ALL //THE PROBLEM

SELECT t1.title, t1.content, t2.tags
FROM blog2posts t1, blog3imagestags t2
WHERE id = :id
";
如何将最后一部分与查询合并或联接?

您可以尝试这样做(在第三个联合中添加一个虚拟字段):

您可以尝试以下操作(在第三个UNION中添加虚拟字段):


这样会不会让表演变慢?或者这会让它跳过这个字段的进程吗?你说的“让它跳过这个字段的进程”是什么意思?就好像进程不会读取它一样,比如在
DB
中,它不会在其中搜索
,即使行本身不存在。它只是放了一个“固定结果”,一个常量,(一个空格或任何你想要的)在图像中。其他列都是从表中提取的,所以这不会对性能产生任何影响?或者它的效果不如键入第二个查询?这不会降低性能吗?或者这会让它跳过这个字段的进程吗?你说的“让它跳过这个字段的进程”是什么意思?就好像进程不会读取它一样,比如在
DB
中,它不会在其中搜索
,即使行本身不存在。它只是放了一个“固定结果”,一个常量,(一个空格或任何你想要的)在图像中。其他列都是从表中提取的,所以这不会对性能产生任何影响?或者它的效果不如键入第二个查询?
SELECT t1.title, t1.content, t2.image, t2.tags
FROM blog1posts t1, blog1imagestags t2 
WHERE id = :id

UNION ALL

SELECT t1.title, t1.content, t2.image, t2.tags
FROM blog2posts t1, blog2imagestags t2 
WHERE id = :id

UNION ALL 

SELECT t1.title, t1.content, '' AS image, t2.tags
FROM blog2posts t1, blog3imagestags t2
WHERE id = :id