这是一个未被捕获的错误异常
我只想从两个没有关系但却恰好具有相同列名的表中进行选择。 你知道导致错误的原因还是更好的查询错误?
SELECT product_id, name , meta_keyword , category_id FROM
oc_product_description WHERE name LIKE '%$word%'
UNION ALL
SELECT name as 'category_name' FROM
oc_category_description WHERE name LIKE '%$word%');
答案 0 :(得分:0)
使用UNION
语句时,SELECT
语句中的列必须匹配。但是,您的错误听起来不像是SQL错误,而是来自您使用的语言的异常,可能是Java或C#?您可能必须使用try-catch块包围SQL语句并处理SQL异常或类似的东西。
答案 1 :(得分:0)
union
的组件应具有相同数量的列(具有兼容类型) - 至少在大多数数据库中。试试这个版本:
SELECT product_id, name , meta_keyword , category_id
FROM oc_product_description
WHERE name LIKE '%$word%'
UNION ALL
SELECT NULL, name, NULL, NULL
FROM oc_category_description
WHERE name LIKE '%$word%'");
这似乎是一件不寻常的事情。如果我不得不猜测,你真的不想要union all
查询。但这将解决语法问题。