2010-12-22 11 views
0

Ich muss zwei Tabellen (Kind und Eltern/Betreuer) in einem, Listing first_name, last_name von Child in einer Spalte und pc_title, pc_fname, pc_lname, pc_phone in einer anderen Spalte. Was wäre die Abfrage? Vielen Dank.Mysql Beitritt zwei Tabellen in einem

+1

Möchten Sie uns die Struktur des Tisches geben? Und ich denke, was Sie suchen, ist ein JOIN (LINKS, RECHTS, INNER, etc. je nachdem, was Sie anstreben) –

+1

und warum die Anforderung, die Daten in nur zwei Spalten zurückgeben? Listen Sie sie alle in der Select-Klausel auf ..? – Randy

Antwort

1

Ohne weitere Details Ihres Schemas und spezifischen gewünschten Ergebnisse, das ist nur eine grobe guestimate

SELECT 
    CONCAT_WS(' ',c.first_name,c.last_name) AS child_name, 
    CONCAT_WS(' ',pc.pc_title, pc.pc_fname, pc.pc_lname, pc.pc_phone) AS parent_carer_details 
FROM Child c INNER JOIN Parent_Carer pc ON c.pc_id=pc.pc_id 
ORDER BY child_fname 

Das setzt voraus, dass pc_id ein Feld in der untergeordneten Tabelle ist, und der primäre/Identifizierung Schlüssel in der Eltern/Betreuertisch wird auch pc_id genannt.

Wenn Sie das Schema angeben, können die Kanten leicht aufgeraut werden.

+1

Sie können die INNER JOIN-Bedingung in der FROM-Klausel oder in der WHERE-Klausel angeben - der MySQL-Abfrageparser kümmert sich darum, so dass sie im Grunde dasselbe sind. Es ist jedoch am einfachsten, die FROM-Klausel zu lesen. – Riedsio

+0

Danke. Ja, das ist tatsächlich der Fall, dass die pc_id in der Kindtabelle als Fremdschlüssel und pc_id als Primärschlüssel in der Eltern/Betreuer-Tabelle angegeben ist. Und wenn es richtig ist, dann ist es möglich, Tabellen nur mit FROM-Klausel zu verbinden. Wie: FROM Kind, Eltern/Betreuer ORDER BY child_fname –

+1

Stellen Sie sicher, dass Sie Ihre Join-Klausel angeben, also "ON c.pc_id = pc.pc_id", aber ja, Sie können ORDER für eine generierte Spalte wie 'child_name'. – Riedsio