我有一个表格,其中包含与idpage相关的产品:
+--------+-----------+-------------+-------------+
| idPage | idProduct | inputedName | inputedCode |
+--------+-----------+-------------+-------------+
| 25 | 60 | x | 8924 |
| 26 | 65 | y | 105555 |
| 26 | 70 | z | 105555 |
| 27 | 33 | a | 14151112 |
| 27 | 34 | a | 14151112 |
| 27 | 22 | a | 14151112 |
| 27 | 17 | b | OS987456 |
| 27 | 18 | c | |
| 27 | 17 | | |
| 27 | 23 | a | 14151112 |
+--------+-----------+-------------+-------------+
没有ID唯一。
用户在表单上输入InputedName和InputedCode。
我想在页面视图上做的是选择DISTINCT InputedName x Inputed Code和相交或内部连接(或其他)的组合以及所有相关的itens来显示如下内容:
In idPage=27:
- a 141511112 (inputedName, inputedCode)
-- 33 (idProduct)
-- 34
-- 22
-- 23
- b OS987456
-- 17
- c (null)
-- 18
- (null)(null)
-- 17
有没有很好的方法可以做到这一点或基本方式是最好的?基本的方式,我的意思是,我正在使用PHP。我首先选择inputedName与inputedCode的区别组合(我仍然不知道如何用我的表做)和PHP的while命令我会做另一个查询。在这种情况下,它将进行5次查询。我不认为这是一个优雅的解决方案,但据我所知,mysql功能强大,也许还有另一种方式。
答案 0 :(得分:2)
我对你的要求感到困惑,但让我试一试:
SELECT inputedName, inputedCode, GROUP_CONCAT(idProduct)
FROM sampleTable
WHERE idPage = 27
GROUP BY inputedName, inputedCode
order by COALESCE(inputedname, 'z'), -- this part is optional
COALESCE(inputedCode, 'z') -- this part is optional