2013-12-12 158 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' 
相關問題