PHP SQL使用两个不同的值选择同一列
所以我有两张价格表PHP SQL使用两个不同的值选择同一列,php,sql,join,Php,Sql,Join,所以我有两张价格表 表_01包含ID和价格,而表_02包含ID和不同组价格的额外信息 表_01 --------- id price --------- 1 300 2 300 3 300 表_02 ---------------- id group price ---------------- 1 1 50 2 1 50 2 2 100 3 1 50 我想在HTML中输出什么 --------------------------
表_01
包含ID和价格,而表_02
包含ID和不同组价格的额外信息
表_01
---------
id price
---------
1 300
2 300
3 300
表_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价格”之外的所有内容。我使用这个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'”
,但我想以某种方式同时获得这两个值。您应该使用GROUP BY语句您应该使用GROUP BY语句只需连接表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'
只需将表_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'
试试这个
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'
试试这个
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'
如果组的数量已知(且较小),则可以使用Jan Turoň的解决方案。否则你需要一个支点。您是否使用mysql、postgres…?如果组的数量已知(并且很小),那么您可以使用Jan Turoň的解决方案。否则你需要一个支点。你是否使用mysql,postgres…?我认为这不管用。GROUPBY语句不会将行转换为列。我认为这是行不通的。GROUP BY语句不会将行转换为列。太好了!工作得很有魅力!太好了:)太好了!工作得很有魅力!太多了:)