SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.05.2016, 21:52:00
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
PHP/MySQL Abfrage UNION und +

Hallo

Ich habe eine Knacknuss...
Ich musste eine zweite "Haupttabelle" anlegen, wegen der MySQL Beschränkung auf 65535 rows pro Tabelle.
Jetzt muss ich alle Abfragen über beide Tabellen anpassen...

Muss ich Inhalt kombinieren verknüpfe ich Selects über die beiden Tabellen über UNION.
Will ich ein count aus beiden Tabellen kombinieren, dann verknüpfe ich die Selects über beide Tabellen mit einem +

Aber was mache ich wenn ich eine Kombination aus beidem brauche?

Ich hatte auf der ersten Tabelle eine Abfrage mit zwei Attributen. Ein select count und den entsprechenden Personennamen. Mit einem group by und order by in der dargestellten Tabelle. Aber wie mache ich das über beide Tabellen? Ich kriege es einfach nicht hin.
Mit Zitat antworten
  #2  
Alt 19.05.2016, 09:00:46
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: PHP/MySQL Abfrage UNION und +

verknüpfen mit JOIN, dann als VIEW anlegen. Aber erstmal TEXT als Spaltentyp verwenden wo es geht.
Mit Zitat antworten
  #3  
Alt 19.05.2016, 13:36:59
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
AW: PHP/MySQL Abfrage UNION und +

@ chorn

Danke. Könntest du mir das als Beispiel aufzeigen?
Mit Zitat antworten
  #4  
Alt 19.05.2016, 15:23:51
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: PHP/MySQL Abfrage UNION und +

Tabellen hast du ja schon, die haben ja sicher auch eine jeweils eindeutige ID, die in beiden Tabellen vorkommt. Damit kannst du jedes beliebige Tutorial zu SQL JOINS benutzen.
Mit Zitat antworten
  #5  
Alt 22.05.2016, 17:36:56
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
AW: PHP/MySQL Abfrage UNION und +

@ chorn

Ja, die Datenbank ist normalisiert.
Aber das ist nicht mein Problem.

Ich hole mal noch etwas weiter aus.
Ich habe eine Datenbank mit Renneinsätzen.
Die einzelnen Einsätze werden in die Tabelle history eingetragen.
Diese referenziert auf andere Tabellen mit den Rennen, Fahrern, Teams, Rennautos, etc.
Und die Tabelle history sprengt nun leider das mysql Limit. Demnach geht es in der Tabelle history2 weiter.
Und ich muss alle Abragen auf der Webseite über beide history Tabellen erweitern.

Beispiel wie ich in einem PHP Script eine Auflistung von Renneinsätzen aus beiden Tabellen erstelle:
PHP-Code:
        // DB Abfrage 
        
$anfrage5 
            SELECT 
                    DISTINCT history.number, driver.fullname'driver1', team.name'team', team2.name'name2', teamadd.name'add', car.name'car', history.mate
              FROM 
                    `history`,`driver`,`team`,`team2`,`teamadd`,`car`, `race`
              WHERE 
                    history.race = '"
.mysql_real_escape_string($_POST['racefull'])."' 
                AND history.driver1 = driver.id
        AND history.team = team.id
        AND history.team2 = team2.id
        AND history.teamadd = teamadd.id
        AND history.car = car.id
UNION

SELECT 
                    DISTINCT history2.number, driver.fullname'driver1', team.name'team', team2.name'name2', teamadd.name'add', car.name'car', history2.mate
              FROM 
                    `history2`,`driver`,`team`,`team2`,`teamadd`,`car`, `race`
              WHERE 
                    history2.race = '"
.mysql_real_escape_string($_POST['racefull'])."'
                AND history2.driver1 = driver.id
        AND history2.team = team.id
        AND history2.team2 = team2.id
        AND history2.teamadd = teamadd.id
        AND history2.car = car.id
        ORDER BY team asc, number, mate, driver1
"

Beispiel wie ich Renneinsätze aus beiden Tabellen zusammenzähle:
PHP-Code:
$anfrage1 "SELECT (SELECT COUNT(*) from history where driver1 is not NULL and team is not NULL and car is not NULL) +
(SELECT COUNT(*) from history2 where driver1 is not NULL and team is not NULL and car is not NULL) AS total1"

Und jetzt kommt eben mein Problem.
Wie mache ich eine Abfrage über beide history Tabellen, wo:
- im Output eine Liste erstellt wird, wo eine Rangliste nach Anzahl Rennen, mit dem jeweiligen Fahrer daneben dargestellt wird.
- also quasi eine Kombination aus UNION und +
- natürlich auch noch mit einem Distinct über das Resultat beider Tabellen, da ein Rennen wo ein Fahrer auf zwei Autos eingesetzt wurde, nur einmal zählt.

Nur über eine history Tabelle war das eine einfache Sache. Aber über zwei Tabellen kriege ich es nicht hin.
Mit Zitat antworten
  #6  
Alt 23.05.2016, 13:00:37
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: PHP/MySQL Abfrage UNION und +

Zitat:
Zitat von bgr Beitrag anzeigen
[..]
Ich musste eine zweite "Haupttabelle" anlegen, wegen der MySQL Beschränkung auf 65535 rows pro Tabelle.
Seit wann sind MySQL Tabellen auf diese Größe beschränkt? Vorgabe vom Provider -> Next Step -> Providerwechsel.

Siehe dazu auch hier.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7  
Alt 23.05.2016, 22:10:11
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
AW: PHP/MySQL Abfrage UNION und +

Danke für eure Antworten.
Aber ich bin trotzdem keinen Schritt weiter. Ich verstehe ehrlich gesagt Gott und die Welt nicht mehr.
Irgendwie muss einfach etwas mit dieser 65535er Grenze sein.

Die letzte ID auf dem Primary Key in der History Tabelle ist auf 65535. Und das Autoincrement war auf 65536. Und trotzdem kommt beim nächsten Einfügen von einer row die Meldung: ERROR 1062: Duplicate entry '65535' for key 'PRIMARY'
Ich kann die row mit der ID 65535 löschen und neu erfassen = ok, aber die Nächste scheitert wieder.

Ich habe eine Kopie von der Tabelle history gezogen und max_rows auf 1'000'000 gesetzt. In der Kopie ist die ID nicht Primary. Ich kann eine zusätzliche row einfügen.
Aber was passiert? Ich gebe beispielsweise eine neue row ein mit der ID 65537 = ok. Dann öffne ich die Tabelle neu und es steht auch bei der eben eingefügten row 65535 drin... Und wenn man die ID auf 65537 ändern will, langt er 0 rows an.

Sorry, aber ich weiss echt nicht was hier abgeht....

@vt1816: was hat es denn damit auf sich?
http://dev.mysql.com/doc/refman/5.7/...unt-limit.html
Mit Zitat antworten
  #8  
Alt 23.05.2016, 22:21:13
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: PHP/MySQL Abfrage UNION und +

Dann mal ans Eingemachte.

Welche Version hat Deine MySQL Datenbank?
Welches Betriebssystem (Linux, Unix, Windows, etc.)?
Struktur der Datenbanktabelle?
Womit hängst Du die Datensätze an Deine Tabelle an?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9  
Alt 23.05.2016, 22:45:44
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
AW: PHP/MySQL Abfrage UNION und +

MySQL Version 5.5.49
Gehostet auf all-inkl.com, müsste nachfragen auf welchem OS die laufen.
Ich arbeite mit dem MySQL Control Center.

id smallint(5) unsigned NOT NULL Primary auto_increment
number varchar(5) NULL
race smallint(5) unsigned NULL
racenew smallint(5) unsigned NULL
team smallint(5) unsigned NULL
team2 smallint(5) unsigned NULL
teamadd smallint(5) unsigned NULL
car smallint(5) unsigned NULL
driver1 smallint(5) unsigned NULL
mate varchar(5) NULL
Mit Zitat antworten
  #10  
Alt 23.05.2016, 22:57:25
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: PHP/MySQL Abfrage UNION und +

Ändere mal die Struktur:

alt id smallint(5) unsigned NOT NULL Primary auto_increment

neu id int(11) unsigned NOT NULL Primary auto_increment
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit LIKE und UNION in einer Mysql Abfrage stefaner MySQLi/PDO/(MySQL) 4 28.07.2011 09:02:33
SQL Abfrage mit PHP Variablen die leer sind WHERE plz = ? Loki555 MySQLi/PDO/(MySQL) 8 28.04.2009 15:18:33
PHP/MYSQL Variable mit mehreren Werten für Abfrage Boomi PHP Grundlagen 12 25.11.2008 18:34:52
Wie SELECT mit Suche nach String beschleunigen? mgutt MySQLi/PDO/(MySQL) 11 23.10.2008 18:36:17
SELECT Abfrage nur mit gefüllten Werten Skyman MySQLi/PDO/(MySQL) 0 25.10.2007 00:01:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:31:17 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt