Abfrage (mir fällt kein sinnvoller Betreff ein)
Twilo
- datenbank
0 Klaus Mock0 fk0 Twilo
Hallo,
ich habe z. B. zwei Tabellen
+------------+ +------------+
| guppen_id | | id |
+------------+ +------------+
| user_id | | user_id |
+------------+ +------------+
| ... |
+------------+
ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört
mfg Twilo
Hallo,
ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört
So etwas nennt man eine JOIN-Abfrage. Ob und wie genau das mit Deiner Datenbank funktioniert steht in der Produktdokumentation, da es zwischen den verschiedenen Datenbanksystemen durchaus Unterschiede gibt, selbst wenn sie alle SQL beherrschen (was ja nicht unbedingt sein muss).
Grüße
Klaus
Hallo,
ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört
So etwas nennt man eine JOIN-Abfrage. Ob und wie genau das mit Deiner Datenbank funktioniert steht in der Produktdokumentation, da es zwischen den verschiedenen Datenbanksystemen durchaus Unterschiede gibt, selbst wenn sie alle SQL beherrschen (was ja nicht unbedingt sein muss).
Als Datenbank System kommt MySQL 4 im Einsatz, vielleicht auch 3.23.xx
das kann ich jetzt noch nicht genau sagen, mir ist aber bewusst, dass MySQL 4 etwas mehr kann als MySQL 3 ;)
wie müsste ich denn mein PHP-Script schreiben?
ich steh da etwas im Dunkeln
Hallo,
Als Datenbank System kommt MySQL 4 im Einsatz, vielleicht auch 3.23.xx
wie müsste ich denn mein PHP-Script schreiben?
Keine Ahnung, da ich weder mit MySQL noch mit PHP arbeite, aber
http://dev.mysql.com/doc/mysql/de/SELECT.html
http://dev.mysql.com/doc/mysql/de/JOIN.html (das betrifft dein aktuelles Problem auf der Datenbankseite)
und
http://www.php.net/manual/de/ref.mysql.php (vor allem die Beispiele, welche sich mit dem AUsführen von Abfragen betrifft)
sollte ausreichen, eine brauchbare Problemlösung zu finden.
Grüße
Klaus
Hallo,
falls ich kein MySQL 4 habe, kann ich ja kein join verwenden
dann müsste ich ja erstmal
beim ersten mal die user_id's abfragen
$sql = sprintf ('SELECT %s FROM %s WHERE 1 AND %s=%s', 'user_id', _DBTAB.'gruppen', 'gruppen_id', 2);
if (_DUMPEN)...;
$userIDs = $db->getAssoc($sql);
if (_DUMPEN) ...;
if(DB::isError($userIDs)){
die($userIDs->getMessage());
exit();
}
$userIDs ist jetzt ein Array mit den user_id's
wie muss ich jetzt die 2. Abfrage starten?
wie muss ich da die WHERE Bedingung schreiben?
kann ich da einfach ein Array übergeben?
mfg
yo,
falls ich kein MySQL 4 habe, kann ich ja kein join verwenden
wer sagt den sowas ?
Ilja
Hallo,
falls ich kein MySQL 4 habe, kann ich ja kein join verwenden
wer sagt den sowas ?
auf MySQL.com steht
Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!
ps. gibt es MySQL 3.x.xx gar nicht mehr zum Download?
unter http://dev.mysql.com/downloads/mysql/4.0.html finde ich rechts keine Rubrik mit 3
yo,
auf MySQL.com steht
Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!
also ich vermute, da bringst du etwas durcheinander. ein dbms ohne joins ist wie butter ohne brot. zeig doch mal den genauen link auf die seite, da wird sicherlich von bugs dire rede sein, aber nicht, dass man keine joins anwenden kann.
Ilja
Hallo,
auf MySQL.com steht
Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!
also ich vermute, da bringst du etwas durcheinander. ein dbms ohne joins ist wie butter ohne brot. zeig doch mal den genauen link auf die seite, da wird sicherlich von bugs dire rede sein, aber nicht, dass man keine joins anwenden kann.
http://dev.mysql.com/downloads/mysql/4.0.html
kann natürlich sein, dass ich mich täusche ;-)
Hallo,
ups, hab eben den falschen Link kopiert
hier ist der richtige
http://dev.mysql.com/doc/mysql/de/JOIN.html
yo,
da interpretierst du etwas falsch. der folgende satz besagt nicht, dass mysql vorher keine join konstrukte kannte, sondern nur dass der inner join vorher keine join_bedingungen aufnahm:
"Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!"
das sind zwei ganz verschiedene aussagen ;-)
Ilja
Hallo,
da interpretierst du etwas falsch. der folgende satz besagt nicht, dass mysql vorher keine join konstrukte kannte, sondern nur dass der inner join vorher keine join_bedingungen aufnahm:
"Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!"
das sind zwei ganz verschiedene aussagen ;-)
ok, überedet :-)
yo,
ich überlege gerade, was eine relationale datenbank ohne joins wäre. das müsste in etwa so was wie excel sein...
Ilja
Hallo,
ich überlege gerade, was eine relationale datenbank ohne joins wäre. das müsste in etwa so was wie excel sein...
Es gibt durchaus Datenbanken, die die JOIN-Syntax, so wie sie z.B. bei mySQL möglich ist, nicht interpretieren kann. Nichtsdestotrotz sind es relationale Datenbanksysteme, nur muss man einen Join anders formulieren.
Theoretisch (und villeicht auch praktisch), kann es auch RDBMSen geben, die nicht mal SQL verstehen.
Grüße
Klaus
yo,
Es gibt durchaus Datenbanken, die die JOIN-Syntax, so wie sie z.B. bei mySQL möglich ist, nicht interpretieren kann. Nichtsdestotrotz sind es relationale Datenbanksysteme, nur muss man einen Join anders formulieren.
es ging ja nicht darum, ob das kind nun einen anderen namen hat, sondern generell um die möglichekeit, mehrere tabellen miteinander zu verbinden oder nicht. und jedes rdbms sollte das können oder man nennt es halt excel....
Ilja
Hallo,
[...]
und jedes rdbms sollte das können oder man nennt es halt excel....
seit wann ist excel eine Datenbank?
yo,
seit wann ist excel eine Datenbank?
ist keine datenbank, nur wenn es keine join funktionalität gibt, dann sieht es dem programm ähnlich....
Ilja
Hallo,
es ging ja nicht darum, ob das kind nun einen anderen namen hat, sondern generell um die möglichekeit, mehrere tabellen miteinander zu verbinden oder nicht. und jedes rdbms sollte das können oder man nennt es halt excel....
Erstelle in einer Arbeitsmappe "Mappe1.xls" folgende Tabellenblätter:
Abteilungen
Id Bezeichnung
1 Einkauf
2 Verkauf
Namen
Id Name Abteilung_Id
1 Müller 1
2 Maier 1
3 Schulze 2
4 Lehmann 2
Nun erstelle mit Microsoft Query folgende Abfrage:
SELECT Abteilungen$.Bezeichnung, Namen$.Name
FROM D:\Eigene Dateien\Mappe1.Abteilungen$ Abteilungen$, D:\Eigene Dateien\Mappe1.Namen$ Namen$
WHERE Abteilungen$.Id = Namen$.Abteilung_Id
und urteile nie wieder vorschnell über Excel ;-))
viele Grüße
Axel
yo,
und urteile nie wieder vorschnell über Excel ;-))
ok, excel kann mehr als wie ich mit excel umgehen kann. dann ist es eben ein excel light ;-)
Ilja
Hallo,
ich habe z. B. zwei Tabellen
+------------+ +------------+
| guppen_id | | id |
+------------+ +------------+
| user_id | | user_id |
+------------+ +------------+
| ... |
+------------+ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört
mfg Twilo
select tabelle2.*
from tabelle2 join tabelle1 on tabelle1.user_id = tabelle2.user_id
where tabelle1.gruppen_id = 2
Hallo,
ich habe z. B. zwei Tabellen
+------------+ +------------+
| guppen_id | | id |
+------------+ +------------+
| user_id | | user_id |
+------------+ +------------+
| ... |
+------------+ich möchte jetzt aus der zweiten Tabelle die Daten Abrufen, aber nur von denen, wo die user_id der Gruppe z.B. 2 angehört
select tabelle2.*
from tabelle2 join tabelle1 on tabelle1.user_id = tabelle2.user_id
where tabelle1.gruppen_id = 2
das muss ich erstmal verinnerlichen, ich hatte mir zwar schon http://dev.mysql.com/downloads/mysql/4.0.html angeschaut, so richtig schlau wurde ich dadurch aber noch nicht
ich werde damit wohl mal etwas rumtesten müssen :-)
danke für deine Antwort