2012-06-15 47 views
1

基本问题:如何连接2个表以获取以下输出?没有密钥的mysql连接表

Table1: 
"type" 
red 
blue 
big 
small 

===

Table2: 
"object" 
cat 
person 
chair 

===

Output: 
red cat 
blue cat 
big cat 
small cat 
red person 
blue person 
big person 
small person 
red chair 
blue chair 
big chair 
small chair 
+3

由于这确实是一个基本问题,你有什么尝试? – lanzz

回答

4
SELECT * FROM Table1 CROSS JOIN Table2 
+0

+1包含'CROSS'关键字,但在SELECT列表中使用'*'是不太理想的。 – spencer7593

+0

正在寻找这个确切的事情 - 谢谢大家! – stevenjoe

1
array_combine(table1, table2); 

Here是对更多信息的链接。

+0

这适用于PHP中的数组,但不适用于从MySQL中的表中获取结果集。 – spencer7593

1

笛卡尔乘积我想:

SELECT t1.type, t2.object FROM Table1 t1, Table2 t2 
2
SELECT CONCAT(t1.type,' ',t2.object) as `Output:` 
    FROM table1 t1 CROSS JOIN table2 t2 

(关键字CROSS是在MySQL可选的,但它确实有助于你打算笛卡尔积,这对于人有用的信息文档谁读这条语句,谁通常会期望看到一个连接谓词。

如果你需要以特定顺序返回的结果集,那么包含一个ORDER BY子句。这是一个相对复杂的表达式按所示顺序排序,但可以完成。