ich einige Probleme mit dem folgenden Problem hat, wird Ihnen zeigen, was ich habe, was ich will und was ich versucht habe ...wählen subquery für Kindertisch
Was ich will: Ich habe ein Elternteil und Kind Tabelle, die Mutter ist
Besuche
und das Kind Tabelle ist
Einschätzungen
, gibt es eine Eins-zu viele Beziehung zwischen den beiden definierten Tabellenstruktur siehe unten:
SELECT
VisitPk, (Primary Key)
ClientFk,
ClientSiteFk,
AssessorFk,
VisitStartDate,
VisitEndDate,
CONCAT(MONTHNAME(TargetDate), ' ', YEAR(TargetDate)) AS TargetMonth,
Duration,
VisitStatus,
TargetDate,
`Long`,
Lat,
VisitPlanRequired,
VisitPlanIssued,
VisitPlanStatus,
VisitPlanAttachment,
DATE_SUB(VisitStartDate, INTERVAL 1 Month) AS VisitPlanDue,
Overnight,
YEAR(TargetDate) AS `Year`
FROM visits
ORDER BY YEAR(TargetDate) DESC, TargetDate, VisitStartDate
und
SELECT
assessments.AssessmentPk, (Foreign Key)
assessments.VisitFk,
assessments.`Scope`,
FROM assessments
Was ich brauche ist ein Feld in die Bewertung zu setzen Tabelle, so dass es alle Bereiche der Besuchstabelle nachschlägt und sie dann gruppiert. E.G ist visit pk 1 hat zwei Einträge 3 untergeordnete Datensätze, 1, 2 und 3, id möchte eine concat/implode-Funktion verwenden, um es als 1,2,3 in der übergeordneten Tabelle anzuzeigen.
Ich könnte dies mit PHP und physisch speichern Sie die Daten in der Tabelle, aber ich würde es vorziehen, diese Route nicht zu gehen.
Ich habe versucht, eine zweite Select-Anweisung in der ersten Select-Anweisung zu haben, um eine Unterabfrage auszuführen, aber kommt nicht einmal nahe.
Ich habe auch dieses exmaple auf gefunden versucht, mit: Can I concatenate multiple MySQL rows into one field?, zB:
SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies GROUP BY person_id
Letztlich, was ich brauche, ist für jemanden, der mir zu sagen, wie ich eine zweite SELECT-Anweisung unter Verwendung der oben group_contact Beispiel platzieren können aber indem Sie den Kindertisch nachschlagen, wo assessmentfk = assessmentpk.
So etwas wie:
SELECT
VisitPk, (Primary Key)
ClientFk,
ClientSiteFk,
**CONCAT(SELECT `scope` from assessments LEFT OUTER JOIN assessments ON visits.VisitPk = assessments.VisitFk) as `Scope`**
AssessorFk,
VisitStartDate,
VisitEndDate,
CONCAT(MONTHNAME(TargetDate), ' ', YEAR(TargetDate)) AS TargetMonth,
Duration,
VisitStatus,
TargetDate,
`Long`,
Lat,
VisitPlanRequired,
VisitPlanIssued,
VisitPlanStatus,
VisitPlanAttachment,
DATE_SUB(VisitStartDate, INTERVAL 1 Month) AS VisitPlanDue,
Overnight,
YEAR(TargetDate) AS `Year`
FROM visits
ORDER BY YEAR(TargetDate) DESC, TargetDate, VisitStartDate
Ich hoffe, dass dies Sinn macht und dass jemand helfen kann, ist dies weit über alles, was ich so Entschuldigungen im Voraus in der Vergangenheit getan haben.
ich auch versucht habe (SELECT GROUP_CONCAT ('scope' SEPARATOR '') aus den Einschätzungen LEFT OUTER JOIN Einschätzungen ON visits.VisitPk = assessments.VisitFk GROUP Nach 'scope') als' Scope', – jaykay79
und group_concat ('Scope') als Standards aus Assessments, in denen visits.VisitPk = assessments.VisitFk, – jaykay79