2013-12-12 147 views
1

因此,我有两个包含价格信息的表。PHP SQL选择具有两个不同值的同一列

Table_01有一个ID和一个价格,table_02有ID和不同团体价格的额外信息。

table_01

--------- 
id price 
--------- 
1 300 
2 300 
3 300 

table_02

---------------- 
id group price 
---------------- 
1 1  50 
2 1  50 
2 2  100 
3 1  50 

我想在HTML

---------------------------------------- 
ID PRICE GROUP1 PRICE GROUP2 PRICE 
----------------------------------------- 
1 300  50   - 
2 300  50  100 
3 300  50   - 

输出我已经成功地质疑一切,但“GROUP2 PRI什么CE”。我使用这个SQL命令

SELECT table_01.id, table_02.price AS saleprice, table_01.price 
FROM table_01 
LEFT JOIN table_02 
ON table_01.id=table_02.id AND table_02.group= '1' 

我不太确定我会如何查询第二组。我可以很容易地将"='1'"换成"='2'",但我想以某种方式得到它们两个。

+1

如果组的数量已知(小),比你可以使用JanTuroň的解决方案。否则,你需要一个支点。你使用mysql,postgres ...? –

回答

0

试试这个?

SELECT table_01.id, table_01.price, t21.price AS 'GROUP1 PRICE', 
t22.price AS 'GROUP2 PRICE' 
FROM table_01 
LEFT JOIN table_02 t21 
ON table_01.id=t21.id AND t21.group= '1' 
LEFT JOIN table_02 t22 
ON table_01.id=t22.id AND t22.group= '2' 
+0

完美!像魅力一样工作!泰这么多:) – user1636946

0

您应该使用GROUP BY语句

+0

我不认为这有效。 GROUP BY语句不会将行转换为列。 –

+0

你是对的。他需要一个支点。 –

1

刚刚加入table_02两次:

SELECT table_01.id, table_01.price, t02a.price price1, t02b.price price2 
FROM table_01 
LEFT JOIN table_02 t02a ON table_01.id=t02a.id AND t02a.group='1' 
LEFT JOIN table_02 t02b ON table_01.id=t02b.id AND t02b.group='2' 
相关问题