2013-07-24 36 views
0

我在我的PHP脚本中有一个sql语法,它给了我一个错误。我只想得到2 sql statemet的结果。2个sql语句的sql union语法错误

$sql1 = " SELECT `name`, `surname`, `email`, `user_id` FROM users WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE '$surname%' AND name LIKE '$name%') "; 

$sql2 = " SELECT profile_id from profile WHERE `country`='uk' "; 

我想从我的数据库获取值都$ SQL1和SQL2 $。我使用这样的联合声明,但它没有奏效。任何想法如何解决它:

$sql = " (SELECT `name`, `surname`, `email`, `user_id` FROM users WHERE (surname LIKE '$name%' AND name LIKE '$surname%') OR (surname LIKE '$surname%' AND name LIKE '$name%')) UNION (SELECT profile_id from profile WHERE `country`='uk') "; 
+1

为了使'union'工作,两个查询都必须具有** SAME **组的列。你确定工会是你需要的吗?如果你需要从两个表中获得结果,为什么不加入它们呢? –

回答

5

UNION查询必须具有相同的输出字段。

您在联合查询结合起来,选择查询必须有 相同数量的输出字段,以相同的顺序,并用相同或 兼容的数据类型。