2016-09-16 4 views
1

I Fall haben die Dateinamen aus der Tabelle für die firts TabelleAbrufen der Dateinamen Rekord

tb_induk 
 
---------------- 
 
id_induk | nomor_induk | id_burung | hen  | cock 
 
25   | IND003  |  2  | 91442 | 30441 
 
26   | IND004  |  2  | 10464 | 40020

note foto zu erhalten: Spalte "Henne" und "Schwanz" ist "id_data" von Vögeln

Sekunden Tabelle:

tb_foto 
 
---------------------- 
 
id_foto | id_data | filename 
 
566  |91442 |4b584a8cd6cb98d4b4d9614abb223034.JPG 
 
567  |91442 |b526318215b5c12bf79b3284d8bd5db7.JPG 
 
568  |30441 |4db159080e0cefb4fd9a2862502ab0f5.JPG 
 
570  |10464 |4216d01abb3bdce90bd72e40ef1d593b.JPG 
 
571  |40020 |6c5b28bffd79fc661f44733c04d12446.JPG

Die Abfrage ist:

Query 
 
----------------------- 
 
    "select 
 
tb_induk.id_induk as id_induk, 
 
tb_induk.nomor_induk as nomor_induk, 
 
case WHEN tb_foto.id_data=tb_induk.Hen THEN tb_foto.filename END as filenamehen, 
 
case WHEN tb_foto.id_data=tb_induk.Cock THEN tb_foto.filename END as filenamecock 
 
from tb_induk INNER JOIN tb_foto ON 
 
tb_induk.Hen=tb_foto.id_data || tb_induk.Cock=tb_foto.id_data 
 
where id_burung=$id_burung GROUP BY tb_induk.id_induk"

Ergebnis

Result 
 
------------------------------ 
 
id_induk | nomor_induk | id_burung | hen         | cock 
 
    25  | IND003  |  2  | 4216d01abb3bdce90bd72e40ef1d593b.JPG | NULL 
 
    26  | IND004  |  2  | NULL        | 207b21895c556bc5fada1ead8ec34d06.JPG

+0

... und Ihre Frage? Warum benutzen Sie 'GROUP BY'? –

+0

ach so Sory, ich meine, wie Wert von Spalte Huhn und Hahn mit Dateiname von tb_induk basierte id_data \ –

+0

Ich gab eine Antwort unten. Wenn Sie gruppieren möchten, müssen Sie uns eine Logik für das Aggregieren der Dateinamen geben. –

Antwort

1

Ich denke, man kann tb_foto nur kommen zweimal zieht in den Dateinamen für Hühner und Hähne, für jeden tb_induk Wert:

SELECT t1.tb_induk, 
     t1.nomor_induk, 
     t1.id_burung, 
     COALESCE(tf1.filename, 'NA') AS hen, 
     COALESCE(tf2.filename, 'NA') AS cock 
FROM tb_induk t1 
LEFT JOIN tb_foto tf1 
    ON t1.hen = tf1.id_data 
LEFT JOIN tb_foto tf2 
    ON t1.cock = tf2.id_data 
+0

danke für deine antwort und arbeit, ich denke anwendungsfall aber es stimmt nicht :) –