工具表:
id tool_nr
687 2902
745 2456
234 3245
产品表:
id tool_id something
3432 687 123456
4587 745 254786
4411 687 258956
4741 234 874455
8745 745 987445
因此,工具表id等于产品表tool_id。
我想要什么:
tool_nr something
2902 123456
2456 254786
2902 258956
3245 874455
2456 987445
正如你所看到的,工具表id在产品表中可能有多个值,你知道我的查询给我的是用逗号分隔的"某物"值,但我需要更改它,我想知道最好的方法是什么?
试试这个:
SELECT t.tool_nr, p.something
FROM Product p
JOIN Tools t ON p.tool_id=t.id;
$result = mysql_query("SELECT
t.tool_nr,
p.something
FROM tools t
LEFT JOIN products p
ON p.tool_id = t.id");
根据我的了解,您希望拥有与产品相同的元素顺序。你可以试试这个命令:
$result = mysql_query("SELECT Tools.tool_nr, p.something FROM Product "
." INNER JOIN Tools"
." ON Product.tool_id = Tools.id"
." ORDER BY Product.id");
它将为您提供所有行,其中存在用于给定产品的工具。如果您想显示所有产品,并且只显示适当产品的工具:
$result = mysql_query("SELECT Tools.tool_nr, p.something FROM Product "
." LEFT JOIN Tools"
." ON Product.tool_id = Tools.id"
." ORDER BY Product.id");
相反,如果你想显示所有工具,并且只显示这些工具的产品:
$result = mysql_query("SELECT Tools.tool_nr, p.something FROM Tools "
." LEFT JOIN Product"
." ON Product.tool_id = Tools.id"
." ORDER BY Product.id");