1

我有一个查询

"select * from test";

我必须在测试后添加 UNION

"select * from test union"

它不是连续的。

如何将联合添加到查询中?

更新

select * from x where id = "2" union select * from y where id = "2" union select * from z where id = "2"
select * from x where id = "3" union select * from y where id = "3" union select * from z where id = "3"

请参阅 select 语句 id = 3 ,union 丢失。现在,我必须在查询中添加这个联合来执行和删除最后一个额外的联合并将查询传递给 mysql_query() 函数。

4

3 回答 3

2

UNION 所做的是结合 2 个单独的 SELECT 查询的结果

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

或者

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

对于重复使用 UNION ALL

编辑:

而不是使用这个使用 OUTER JOINS LEFT JOIN

他们好多了。并给你确切的结果等待我会为你建立一个查询。

编辑:

SELECT * FROM tablename_1 temp_name_1 
LEFT JOIN tablename_2 temp_name_2 ON temp_name_1.id=temp_name_2.id 
LEFT JOIN tablename_3 temp_name_3 ON temp_name_1.id=temp_name_3.id 
WHERE temp_name_1.id = "2"

其中 tablename_1 是 x,tablename_2 是 y,tablename_3 是 y

和 temp_name_1、temp_name_2、temp_name_3 是您喜欢的名称。这些是临时名称,因此您可以删除 temp_name_? 并且可以使用表的原始名称。

编辑:

使用它来加入您的选择语句:

$string = "";
$string .= (!empty($string)?" UNION ":" ")."Your query here";

无论是在循环中还是在 if else if 中

于 2012-05-01T10:46:55.720 回答
0

尝试这样的事情

  SELECT * FROM test
  UNION
  SELECT * FROM test1
于 2012-05-01T10:50:36.300 回答
-1
$var1 = "Select * from test";
$vart2 = "union";
$vart3  =  var1." ".var2;
echo $var3;
于 2012-05-01T10:45:15.320 回答