加入MySQL中的两个表具有多个值,一个在其他表
问题描述:
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");
+0
非常感谢:) – Myt 2012-08-02 08:34:49
显示您的查询 – allen213 2012-08-02 07:50:11
$ sql_string2 =“SELECT t.tool_nr,p.blabla_nr,p.something FROM tools t RIGHT JOIN products p ON p.tool_id = t.id AND t.status IN('Blala',' Blala') WHERE t.id ='“。$ row [”id“]。''\t \t \t \t \t \t GROUP BY p.tool_id ORDER BY p.blabla_nr DESC“; – Myt 2012-08-02 07:53:25
请问您的查询,你想如何输出看起来像? – PoeHaH 2012-08-02 07:53:37