Ich bin ziemlich neu in der Codierung und durch mein eigenes Interesse versuche ich, ein Datenbanksystem für die Arbeit zu schaffen und sehr viel zu lernen, während ich mitfahre.Mysql Abfrage Code Verbesserung
Ich habe eine Datenbankabfrage, die entworfen wurde, um jüngste Ergebnisse anzuzeigen, wo Sample Name
, Tank Name
und Customer
übereinstimmen. Diese stammen aus drei verschiedenen, aber verwandten Tabellen.
Ich habe die folgende Abfrage erstellt. Diese Abfrage funktioniert aber für meine eigene Ausbildung arbeite ich in die richtige Richtung oder gibt es eine bessere Möglichkeit, dieses Problem anzugehen (das sieht sehr unordentlich aus und ist mir schwer zu lesen)?
SELECT
`t_workorders`.`Work Order`,
`t_workorders`.`Date Sampled`,
`Result`,
`t_test_units`.`Unit`
FROM
`t_sampletests`
RIGHT JOIN `t_samples`
ON `Sample` = `pk_Sample`
RIGHT JOIN `t_workorders`
ON `t_samples`.`Work Order` = `t_workorders`.`Work Order`
LEFT JOIN `t_test_units`
ON `t_sampletests`.`Unit` = `t_test_units`.`pk_Unit`
WHERE `t_sampletests`.`Test` =
(SELECT
`Test`
FROM
`t_sampletests`
WHERE `pk_SampleTest` = $ testID)
AND `t_Samples`.`Sample Name` =
(SELECT
`Sample Name`
FROM
`t_sampletests`
LEFT JOIN `t_Samples`
ON `Sample` = `pk_Sample`
WHERE `pk_SampleTest` = $ testID)
AND `t_Samples`.`Tank` =
(SELECT
`Tank`
FROM
`t_sampletests`
LEFT JOIN `t_Samples`
ON `Sample` = `pk_Sample`
WHERE `pk_SampleTest` = $ testID)
AND `t_workorders`.`Customer` =
(SELECT
`Customer`
FROM
`t_sampletests`
LEFT JOIN `t_Samples`
ON `Sample` = `pk_Sample`
LEFT JOIN `t_workorders`
ON `t_Samples`.`Work Order` = `t_workorders`.`Work Order`
WHERE `pk_SampleTest` = $ testID)
AND `t_workorders`.`Work Order` <>
(SELECT
`t_workorders`.`Work Order`
FROM
`t_sampletests`
LEFT JOIN `t_Samples`
ON `Sample` = `pk_Sample`
LEFT JOIN `t_workorders`
ON `t_Samples`.`Work Order` = `t_workorders`.`Work Order`
WHERE `pk_SampleTest` = $ testID)
ORDER BY `t_workorders`.`Work Order` DESC
LIMIT 15
Alle Vorschläge zu alternativen oder geeigneteren Ansätzen wären sehr willkommen.
Vielen Dank
irgendein Problem auf diese Frage? –
Was ist mit dem Versuch, es zu formatieren, so dass es leicht gelesen werden kann. Benutze neue Zeilen und inkrementiere ..? – John
Ich schlage vor, nicht wie dieses Recht zu verwenden Join 't_workorders .. Dies wird alle Felder von t_workorders –