Verstecken von Spalten
Yadgar
- datenbank
0 Frank (no reg)0 Yadgar
0 dedlfix
High!
Wie kann ich eine Spalte, nach deren Eigenschaft z. B. über eine HAVING-Klausel ausgewählt werden soll, verstecken?
Problemstellung: Aus meiner Orgeldatenbank sollen alle Modelle mit Stummelpedal angezeigt werden; Stummelpedale können 12, 13, 17, 18, 20, 25 oder 30 Tasten haben. Jedem dieser Pedaltypen entspricht eine Kennzahl in der Tabelle "klaviaturen"; da eine Orgel aber immer mindestens ein Manual und ein Pedal hat, gibt es außerdem noch eine Relationstabelle "orgeln_klaviaturen".
Diese Abfrage:
[code=mysql]
select orgeln.Modell, Klaviatur_Nr from orgeln inner join orgeln_klaviaturen on orgeln.Nr=Orgel_Nr having Klaviatur_Nr in (1, 2, 3, 4, 5, 6, 42);
[/code]
zeigt tatsächlich alle Orgelmodelle mit Stummelpedalen an, leider aber auch die Spalte mit den Klaviatur-Kennzahlen. Wie kann ich letzteres unterdrücken?
Bis bald im Khyberspace!
Yadgar
Hi nochmal ...
Warum nutzt du HAVING? Warum nicht einfach WHERE?
Ciao, Frakn
High!
Warum nutzt du HAVING? Warum nicht einfach WHERE?
Wahrscheinlich, weil pro Orgel_Nr ja mehrere (mindestens 2) Einträge für Klaviatur_Nr vorhanden sind und ich unterschwellig noch COUNT(*)...GROUP BY Orgel_Nr im Kopf hatte. Aber du hast Recht, es funktioniert auch so:
select marken.Markenname, orgeln.Modell, Klaviatur_Nr from orgeln inner join orgeln_klaviaturen on orgeln.Nr=Orgel_Nr, marken where orgeln.Marke=marken.Nr and Klaviatur_Nr in (1, 2, 3, 4, 5, 6, 42) order by Markenname;
Danke für den Tipp!
Bis bald im Khyberspace!
Yadgar
echo $begrüßung;
Diese Abfrage:
[...]
zeigt tatsächlich alle Orgelmodelle mit Stummelpedalen an, leider aber auch die Spalte mit den Klaviatur-Kennzahlen. Wie kann ich letzteres unterdrücken?
Es gibt keine gesetzliche Vorschrift, alle abgefragten Spalten anzuzeigen. Gib sie einfach in deinem abfragenden Programm nicht mit aus.
[ code ]
Das gibt es übrigens auch in der Ausführung [ code lang=sql ]
echo "$verabschiedung $name";