So habe ich ein bisschen einen frustrierenden Tag. Ich wurde aus einem Vertrag entlassen Ich hatte die letzten Wochen gearbeitet, weil ich nicht „mit dem Team ineinander greifen.“ Zwei Beispiele wurden genannt:
1) Gestern wurde ich gebeten , alle Daten aus einer SQL Server - Datenbank zu löschen , außer für einige Baseline Systemdaten. Der Anfragende (nicht mein Chef) hatte etwa acht Skripte sie vor ein paar Monaten für diese Aufgabe eingesetzt hatte. Offenbar hat niemand jemals gedacht , das Datenmodell an das Skript oder die Systemdaten.
Diese Person hatte ein Muster von über komplizieren Dingen etabliert, so dass ich versuche, die Gründe für die Aufgabe und das Endziel zu verstehen. Ich kämpfte auch zu verstehen, warum sie alle möglichen vage Fehler immer bekam, dass alle diese zusätzlichen Skripte benötigt, um „zu entfernen und erneut hinzufügen Einschränkungen“.
Ich war durchaus bereit, alles Notwendige zu tun, und wir sprachen einige Minuten darüber. Ich Aus offensichtlichen Gründen gedacht, dass die Suche nach zu verstehen, warum eine gute Sache war. Plötzlich entschied sie sich, dass es nur schneller, es selbst zu tun, anstatt die Zeit damit verbringen, sie alle zu mir erklären, und ich ging zu meiner anderen Arbeit zurück, ohne mehr darüber nachzudenken.
Irgendwie war dies negativ interpretiert.
2) Vor einigen Wochen während meiner ersten Woche wurde ich gebeten , auf Zusammenführung einige Daten aus einem anderen System zu arbeiten. Ich war ein 600+ Zeilenskript von SQL - Schnipsel gegeben , die alle erschienen über schlechte Daten zusammen mit einer mündlichen Tirade von Beschwerden wichtig zu sein und die ursprünglichen Programmierer. Natürlich dauerte es ein wenig Zeit durch eng waten , aber nach ein paar Tagen mein Endergebnis entstand als einfaches MERGE in etwa 25 Zeilen.
Ich habe seit mehr als zehn Jahren SQL geschrieben, und ich halte ich in der Gegend einige Erfahrung zu haben. Meine Mitarbeiter waren immer ein wenig ungeduldig, als ich die Schichten von unnötiger Komplexität abgeschält und ich blieb spät, um die Aufgabe zu beenden, wie versprochen.
Ich war nicht sicher, wie leicht würden sie akzeptieren, dass die Lösung des Problems genau ein sehr kurzer Befehl zu sein schien, und ich fragte mich, ob ich etwas fehlte, die peinlich erweisen würden. Leider waren alle meine bohrenden Fragen immer wieder mit der Art von abweisend Nicht-Antworten erfüllt, die schlechte Lehrer zu einer übermäßig neugierig Grundschüler geben. Also schickte ich die Abfrage zusammen in einer E-Mail und ging nach Hause.
Am nächsten Morgen wurde ich (gleiche Person wie # 1) gesagt, dass es falsch war, aber es war Sachen, die ich nicht als der neue Mann erwartet werden konnte wissen. Sie erklärte, dass sie sich zurückhalten musste von Umschreiben alles. Einer ihrer Punkte war etwas kleinere über die Daten, die ich schon mit ihr über mich gedacht hatte, zu fragen. Der andere war rein SQL.
(Die Frage beginnt hier.)
Nehmen Sie eine typische linke äußere Szenario verbinden. Wir alle wissen , dass die Reihenfolge der Tabellen sehr bedeutsam ist, zB Q1 und Q2 nicht gleichwertig sind :
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON A.id = B.id -- (Q1)
SELECT A.x, B.y FROM B LEFT OUTER JOIN A ON B.id = A.id -- (Q2)
Wenn ich vom Konzept her über mehr denken tritt es in der Regel mich natürlich erscheint die neue Tabelle als das Objekt von Interesse, mich vorzustellen, Aufnehmen und dann beschreiben, wie seine Reihen zu beziehen, was vorher gekommen ist. nicht die Bedingungen parallel zu halten keinen Vorteil zu mir und von meiner eigenen Gewohnheit, die ich im Allgemeinen der Join-Bedingung auf diese Weise schreiben:
SELECT A.x, B.y FROM A LEFT OUTER JOIN B ON B.id = A.id -- (Q3)
So finde ich mich über betreutes werden , wie die Reihenfolge der Tabellen Angelegenheiten in einem äußeren Verknüpfung. Ich hatte gedacht , diesen Test meiner Intelligenz bereits im Vorstellungsgespräch durchgeführt. Meine Verwirrung verwandelte sich in Stupor , als ich merkte , dass sie nur auf den Gleichheitsvergleich wurde konzentriert. Zu ihrem Q3 war falsch und Q1 war die Version , die ich stattdessen benötigt.
Ich bestehen darauf, diplomatisch, dass es keinen Unterschied überhaupt gemacht hat und dass ich einfach meinen Fall sein, wenn sie wollte. Ich versuchte, sie Argumentation zu klären, aber das ist die Art von Person, die nicht eng auf Ihre Fragen, egal hört, wie sorgfältig sie formuliert sind oder wie viele technische Worte, die Sie ein kleines Maß an Kompetenz vorschlagen bedienen, so habe ich beschlossen, dass ich gerade konnte überzeugen sie nicht, dass ich kein Idiot bin. Und ich stimmte das Skript zu ändern, weil es nicht wert war, darüber zu streiten.
Ich nehme an, dass nicht sofort meinen Stolz schlucken gezeigt, dass ich nicht war „coachbar.“
Was Stil allein, I entsprechen einem Standard der Arbeitgeber bevorzugt, obwohl ihre SQL auf andere Weise oft schlampig ist. Ich erkennen, dass mit dem alten Stil äußeren Join-Syntax dieser Angelegenheit würde. Darüber hinaus habe ich noch nie diesen Fall machen gehört niemandem. Bitte beantworten Sie diese Frage und meinen Ruf einlösen.
Ist die Reihenfolge der Ausdrücke oder Prädikate macht einen Unterschied in der Join-Bedingung für Außen in Standard-SQL verbindet?