Einfache SQL-Abfrage verkürzen?

Hallo.

Folgendes Problem:
Ein Lagerbestand soll auf eine Mindestmenge geprüft werden. Dazu sind zwei Tabellen über die gemeinsame Spalte „ID“ zu verknüpfen und zwei Spalten „quantity“ und „min_quantity“ zu vergleichen. Meine Abfrage sieht momentan so aus:

SELECT*FROM table1,table2 WHERE table1.ID=table2.ID AND table2.quantity<table1.min_quantity

Gibt’s irgendwelche cleveren Tricks, hier noch irgendwas zu verkürzen?
Hintergrund: Das Zielsystem erlaubt nur 128 Zeichen für eine SQL-Abfrage. Das ist m.E. ein schlechter Witz, aber so isses halt leider.
Ach ja: Die Tabellen heißen in Wirklichkeit anders und die Tabellen umzubenennen ist leider keine Option.

Gruß,

Kannitverstan

Der erste „Trick“ ist es, den Tabellen Aliase zu vergeben. Da kommt es auf den SQL-Dialekt an. Typischerweise geht das so:

SELECT
    *
FROM
      table1 t1
    , table2 t2
WHERE 
        t1.ID = t2.ID
    AND t2.quantity < t1.min_quantity
2 Like

Das funktioniert, inzwischen soll die Abfrage noch einen Parameter berücksichtigen… ich fürchte, am Ende wird es leider nur bedingt helfen :frowning:

Danke & Gruß,

Kannitverstan

Und wie wäre es mit einer View in der DB, auf die du dann aus dem Zielsystem zugreifst?
View:

create view xyz
as
select * from table1,table2
   where table1.id=table2.id
   and table2.quantity<table1.quantity;

Und im Zielsystem nur mehr

select * from xyz

1 Like

Das könnte tatsächlich eine sehr elegante Lösung werden. Muss ich mir mal anschauen.

Danke & Gruß,

Kannitverstan