php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.03.2006, 13:02  
Neuer Benutzer
 
Registriert seit: 30.03.2006
Beiträge: 2
hansdampf
Standard Werte aus Tabelle 2 in Tabelle 1 übernehmen

Hallo!

Erstmal ein Lob an das Forum!
Nach längerem nur lesen habe ich heute beschlossen mich auch mal anzumelden.


Ich habe hier zwei Tabellen und ein ziemlich dringendes Problem..
Tabelle_1 enthält eine Spalte (feld1) mit einem bestimmten Wert.
Dieser Wert darf von der Anzahl der gleichen Werte in Tabelle_2
nicht überschritten werden.
Das Problem ist jetzt, wie bekomme ich diesen Wert in die Abfrage?
Ich nehme an, das man dafür eine Unterabfrage nutzen könnte.
Allerdings probiere ich jetzt schon ewig rum, und es klappt nicht.

Also nochmal zur Verdeutlichung:
Das ist meine Abfrage

SELECT
tabelle_1.name
FROM
tabelle_1, tabelle_2
WHERE
(tabelle_1.feld1 = '0' OR tabelle_1.feld1 < [Wert aus tabelle_2] )

Das ist Tabelle_2
Code:
+-------+------+------+------------+
| va_id | v_id | m_id | va_time    |
+-------+------+------+------------+
|     1 |    1 |    1 | 1143377902 |
|     2 |    2 |    1 | 1143377902 |
|     4 |    3 |    1 | 1143377902 |
|     5 |    4 |    2 | 1143377902 |
|     6 |    5 |    2 | 1143377902 |
+-------+------+------+------------+
Wie man sieht enthält die Spalte m_id dreimal den Wert 1, bzw. zweimal den Wert 2
Die Zeile in der Abfrage müßte jetzt also lauten:

WHERE
(tabelle_1.feld1 = '0' OR tabelle_1.feld1 < [Hier muß der Wert 3, bzw. 2 stehen] )


Hat jemand eine Idee?
Vielen Dank schonmal!
hansdampf ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.03.2006, 13:14  
Neuer Benutzer
 
Registriert seit: 10.03.2006
Beiträge: 26
ninguno
Standard

ich weiss nicht ob ich dich richtig verstanden habe, wie sind denn die beiden tabellen verknüpft?
Code:
SELECT
  name
FROM
  tabelle_1 t1
WHERE
  feld1 = '0' OR feld1 < (select count(*) from tabelle_2 where m_id= t1.???)
__________________
was machen die vielen Gedanken in meinem Kopf ?
ninguno ist offline   Mit Zitat antworten
Alt 30.03.2006, 13:19  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

Unterabfragen funktionieren aber erst ab MySQL 4.1 (so viel ich weiss)

ansonsten einfach JOIN bzw. LEFT JOIN benutzen. (Wenn es die Tabellenstruktur erlaubt) damit meine ich, das beide Tabellen irgendwie referenziert werden müssen z.B. gleiche Primary Keys
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 30.03.2006, 14:24  
Neuer Benutzer
 
Registriert seit: 30.03.2006
Beiträge: 2
hansdampf
Standard

HI!

Danke erstmal!

Sorry, ich hab das etwas irreführend gepostet..

Also Tabelle 2 sieht z.b. so aus:

Code:
+-------+------+------+------------+
| va_id | v_id | m_id | va_time    |
+-------+------+------+------------+
|     1 |    1 |    1 | 1143377902 |
|     2 |    2 |    1 | 1143377902 |
|     4 |    2 |    2 | 1143377902 |
|     5 |    4 |    2 | 1143377902 |
+-------+------+------+------------+
Die id der ersten Tabelle ist die 'v_id' der zweiten Tabelle.
Es geht um folgendes:
In der ersten Tabelle werden Veranstaltungen gespeichert.
Die maximale Teilnehmerzahl steht dort im feld1.

Jetzt sollen sich Personen, die sich vorher angemeldet haben (in einer dritten Tabelle) für diese Veranstaltungen anmelden können.
(Die m_id ist einfach nur die id dieser Personen.)

Wer sich für welche Veranstaltung angemeldet hat, speichere ich in der oben gezeigten Tabelle 2.

In diesem Beispiel haben sich also für die Veranstaltung (v_id) 1 und 4 jeweils eine Person angemeldet, und für Veranstaltung 2 insgesamt 2 Personen.

Ich brauche das so, damit ich den Personen diejenigen Veranstaltungen anzeigen kann, für die sie sich noch nicht angemeldet haben.
und für die noch Plätze frei sind.

Wenn jetzt in Tabelle 1 die maximale Platzanzahl für die Veranstaltung 2 z.B. 2 beträgt, dürfte in diesem Fall die Veranstaltung 2 nicht mehr angezeigt werden, da sie ja bereits voll ist.

Achja, meine Myql Version ist: MySQL 5.0.18
hansdampf ist offline   Mit Zitat antworten
Alt 30.03.2006, 15:04  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Unterabfragen in WHEREs sollte man aufgrund der Performance trotzdem vermeiden.... Auch wenns mit MySQL 5 unterstützt würde.

Code:
SELECT  tabelle1.name, COUNT(*) AS teilnehmer
FROM tabelle1 INNER JOIN tabelle2 ON tabelle1.id=tabelle2.v_id
WHERE tabelle1.feld1 = 0 OR tabelle1.feld1 > teilnehmer
P.S.: Annahme: feld1=0 heisst unbegrenzte Teilnehmerzahl...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
werte aus tabelle nebeneinander ausgeben Schiedsrichter PHP Tipps 2008 2 15.02.2008 10:20
werte einer tabelle in andere tabelle speichern high_scorer Datenbanken 3 30.09.2005 16:28
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:35
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:28
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:21
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:21
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:20
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:19
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:17
Werte für Dropdown aus Tabelle einlesen PHP Tipps 2005-2 0 05.08.2005 12:16
[Erledigt] Mehrere Werte mit GET von einer Tabelle auslesen... PHP Tipps 2005 2 01.06.2005 13:53
Werte in Tabelle änder und in DB speichern PHP Tipps 2004-2 5 17.12.2004 22:11
werte einer tabelle mit werten einem array vergleichen PHP Tipps 2004 1 08.07.2004 21:33
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45
[Erledigt] Werte eines Arrays aus Tabelle auslesen ? PHP-Fortgeschrittene 12 08.06.2004 19:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
werte von tabelle1 zu tabelle2 übernehmen, wert aus tabelle 1 übernehmen, wert aus anderer tabelle übernehmen wenn gleicher wert, php inhalt von tabelle1 in tabelle2, wen in tabelle 1 ein wert steht soll der inhalt von tabelle 1 in tabelle 2 übernohmen werden, dropdown tabelle 1 zu tabelle 2, soll werte aus tabellenblatt 1 übernehmen, wenn, werte aus tabellenblätter übernehmen, werte einer abfrage übernehmen, werte aus tabelle übernehmen php, werte aus tabelle 1 * wert aus tabelle 2, wert aus tabelle1 in tabelle2 übernehmen, tabelle aus andere html übernehmen, tabellen 2 werte, werte übernehmen im zweiten tabellenblatt, dropdown von tabelle 3 mit mehreren werten aus tabelle 1, where `tabelle1`.`feld1`= 1, wert tabelle 1 zu tabelle2

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.