【发布时间】:2011-09-20 15:10:03
【问题描述】:
好的,我已经在这里看了几天了,我确实找到了这个: MySQL GROUP BY two columns 这很有帮助,但不适用于我目前的工作。
所以这里是我有 3 个不同表的东西的范围
表 1(数量)包括:
quantity_id int(11) auto_increment not null (primary key)
product_id int(11) not null
color_id int(11) not null
size_id int (11) not null
quantity int (11) not null
表 2(颜色)包括:
color_id int(11) auto_increment not null (primary key)
color_name varchar(255)
表 3(尺寸)包括:
size_id int (11) auto_increment not null (primary key)
size varchar(255)
SELECT s.size, c.color_name, q.quantity, q.size_id, q.product_id, q.color_id
FROM quantities q, colors c, sizes s
WHERE q.color_id = c.color_id
AND q.size_id = s.size_id
AND q.product_id = $pid
GROUP BY q.color_id
ORDER BY q.size_id
$pid 是表单传递的产品ID。
当我将结果加载到 2 个不同的选择语句中时:一个用于颜色,一个用于大小 我得到多个相同颜色或大小的:
red s
red L
yellow L
我知道它实际上是从数据库中提取行并显示它们,但是如何 我不重复自己吗?
我试过这个查询
SELECT s.size, c.color_name, q.quantity, q.size_id, q.product_id, q.color_id
FROM quantities q LEFT JOIN colors c ON q.color_id = c.color_id
LEFT JOIN sizes s ON q.size_id = s.size_id
WHERE q.product_id = $pid
有没有更好的办法?
【问题讨论】:
-
您到底想要完成什么?
-
那会很有帮助。好的,这里的最终游戏是我只想用数量超过 1 的产品填充选择框。我不想显示“红色”、“蓝色”的多种颜色,也不想显示多种尺寸'S','L'等现在可以显示红色L红色S黄色L蓝色S