昨天我问了一个类似的问题,但输出上仍有一点问题。工会只会将它组合成一列,并且与连接无关。这就是我想要的。我不想合并。
SELECT prd_id FROM products WHERE title LIKE %$var%;
AND
SELECT lst_id FROM lists WHERE title LIKE %$var%;
我想在一个查询中同时使用这两个,并将它找到的结果输出到2列中,如果有任何一个结果。我也想在最后使用LIMIT。
因此,例如,如果两个表都有一个与标题匹配的项,那么它将返回类似的内容。请注意,值将是每个表中匹配的值。这一点只是在2列中,而不是像Unions输出那样。
+-----------------+
| prd_id | lst_id |
+-----------------+
| value | value |
+-----------------+
我接近但不能完全正确。
为清楚起见,PHP print_r输出应该是这样的。此示例是仅在列表表中匹配2个项目
Array ( [0] => Array ( [lst_id] => 100007 ) [1] => Array ( [lst_id] => 100008 ))
此示例是每个表中的1个项目是否匹配
Array ( [0] => Array ( [prd_id] => 100006 ) [1] => Array ( [lst_id] => 100008 ))
任何一个表都可以有任意数量的匹配。
答案 0 :(得分:1)
最简单的答案是将结果合并到不同的列中,如下所示:
SELECT prd_id, 0 lst_id FROM products WHERE title LIKE %$var%
UNION ALL
SELECT 0 prd_id, lst_id FROM lists WHERE title LIKE %$var%;