0

ツール テーブル:

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 には製品テーブルに複数の値が含まれている可能性があります。クエリによって、カンマで区切られた「何か」の値が返されていることがわかりますが、それを変更する必要があり、最善の方法を知りたいと考えています。それをするために?

4

3 に答える 3

0

これを試して :

SELECT t.tool_nr, p.something 
FROM Product p 
JOIN Tools t ON p.tool_id=t.id;
于 2012-08-02T07:56:32.793 に答える
0

私が収集したものから、あなたは製品の場合と同じ要素の順序を持​​ちたいと思っています。次のコマンドを試すことができます。

$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");
于 2012-08-02T08:22:06.757 に答える
0
$result = mysql_query("SELECT 
                             t.tool_nr, 
                             p.something 
                       FROM tools t 
                       LEFT JOIN products p 
                       ON p.tool_id = t.id");
于 2012-08-02T07:57:41.933 に答える