2012-08-02 82 views
0

工具表:加入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可能有多個值在產品列表中,右鍵知道我的查詢是給我的「東西」值與逗號一起分開了,但我需要改變它,我想知道什麼是最好的方式來做到這一點?

+0

顯示您的查詢 – allen213 2012-08-02 07:50:11

+0

$ 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

+0

請問您的查詢,你想如何輸出看起來像? – PoeHaH 2012-08-02 07:53:37

回答

0

試試這個:

SELECT t.tool_nr, p.something 
FROM Product p 
JOIN Tools t ON p.tool_id=t.id; 
+0

謝謝,但它沒有工作,它給了我所有的價值在一行,但我希望每個「東西」價值在不同的行:) – Myt 2012-08-02 08:04:31

+1

你需要哪種輸出?當我讀了你的問題,你想是這樣 'tool_nr something' '2902 123456' '2456 254786' '2902 258956' '3245 874455' '2456 987445' – 2012-08-02 09:20:22

+0

是啊,我確實需要這一點,我知道了,這是我的錯,它不起作用,因爲我正在使用另一個無用的sql查詢。感謝您的幫助,我欣賞它。 – Myt 2012-08-02 10:02:23

0
$result = mysql_query("SELECT 
          t.tool_nr, 
          p.something 
         FROM tools t 
         LEFT JOIN products p 
         ON p.tool_id = t.id"); 
+0

我沒有得到什麼問題,但它只是在一行中迴應「某些事情」的價值觀。我希望他們在不同的行上,但我很感激幫助。 – Myt 2012-08-02 08:22:21

+0

你是什麼意思? 2個「東西」行? – sephoy08 2012-08-03 00:24:02

+0

我用了一些東西,就像我需要從數據庫中獲得的值:)我需要將這些值放在不同的行上,但是我知道了,這是我的錯,它一開始並不工作,所以謝謝你的幫助。 – Myt 2012-08-03 05:47:57

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"); 
+0

非常感謝:) – Myt 2012-08-02 08:34:49

相關問題