2010-08-13 63 views
1

表1:MySQL - 显示所有排列?

Id MyFK f_name l_name 
=========================== 
1 100 John  Doe 
2 100 Little Timmy 

表2:

Id MyFK item  price 
=========================== 
1 100 Car  200 
2 100 Bike  100 

在MySQL中,我怎么产生这样的表:

Id MyFK f_name l_name item price 
======================================== 
1 100 John  Doe  Car 200 
1 100 John  Doe  Bike 100 
2 100 Little Timmy Car 200 
2 100 Little Timmy Bike 100 

回答

4
CREATE TABLE person 
SELECT 1 AS Id, 100 AS MyFK, 'John' AS f_name, 'Doe' AS l_name UNION 
SELECT 2, 100, 'Little', 'Timmy'; 

CREATE TABLE vehicle 
SELECT 1 AS Id, 100 AS MyFK, 'Car' AS item, 200 AS price UNION 
SELECT 2, 100, 'Bike', 100; 

SELECT p.Id, p.MyFK, p.f_name, p.l_name, v.item, v.price 
FROM person p 
CROSS JOIN vehicle v; 
0

使用连接到一起的一个字段的表,其会给你后面的结果。在这种情况下使用的每个表上的MyFK场,因此会使用:

SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.MyFK = Table2.MyFK 

这给出结果你是经过。

+0

他要求所有可能的**排列**: - ? – 2010-08-13 10:15:55