MySQL无共同字段两表记录合并:能否单查询实现笛卡尔积结果?
当然可以用单条MySQL查询实现!
这其实是典型的**笛卡尔积(Cartesian Product)**应用场景——就是把两个表的每一行都进行配对组合,正好能生成你要的所有颜色+物品的组合。
你可以用两种写法来实现,效果完全一致:
写法1:隐式交叉连接(传统逗号分隔)
SELECT CONCAT(a.color, ' ', b.item) AS combined_result FROM TableA a, TableB b;
写法2:显式CROSS JOIN(更清晰推荐)
SELECT CONCAT(a.color, ' ', b.item) AS combined_result FROM TableA a CROSS JOIN TableB b;
补充说明:
CROSS JOIN会直接返回两个表的所有行组合,正好匹配你的需求(3种颜色 × 3种物品 = 9条结果)。CONCAT()函数用来把TableA的颜色值、空格、TableB的物品值拼接成一个完整字符串,别名combined_result让结果更直观易读。- 如果你的表实际字段名不是
color和item,记得替换成对应字段名称即可。
内容的提问来源于stack exchange,提问作者Art
相关产品推荐
相关产品推荐

