Flashhilfe.de - Flash Community

update mit inner join

 


AntwortenRegistrieren Seite1  

Stachlbeere#1
Benutzerbild von Stachlbeere
Beiträge: 118
Registriert: Feb 2007

22.06.2009, 14:54

Hallo, folgendes Problem beispielhaft erklärt. Ich habe 2 Tabellen.

Tabelle User mit den Spalten ID und Username
Tabelle Fotos mit den Spalten ID und UserID

Nun möchte ich die Spalte UserID Updaten und die ID aus der Usertabelle reinschreiben (WHERE Userame = $Name)
Nachdem ich nun schon tausend sachen gelesen habe, glaub ich dass das irgendwie mit dem inner join geht.. Bin mir jedoch unssicher.

Sollte sehr sehr grob ja nun irgendwie so aussehen..

UPDATE Fotos SET UserID = User.ID WHERE Username = $Name

Wie gesagt weiß ich 1. nicht ob inner join das richtige Stichwort ist,
2. nicht an welche Stelle es gehören könnte. (der erste join versuch :) )
Aggi#2
Benutzerbild von Aggi
Beiträge: 20
Registriert: Jun 2009

02.07.2009, 08:39

INNER/LEFT/RIGHT JOINs bei Abfragen.

Dein Problem löst du am einfachsten mit einer Abfrage zuvor.

PHP:
1
2
3
4
<?
$myVar 
Select FROM User WHERE Userame $Name;
?>


danach

PHP:
1
2
3
4
<?
UPDATE Fotos SET blabla 
blabla WHERE UserID $myVar;
?>



Ähm ich bin jetzt davon ausgegangen dass du eine mySQL DB hast.
Geändert von Aggi am 02.07.09 um 14:21 Uhr
Stachlbeere#3
Benutzerbild von Stachlbeere
Beiträge: 118
Registriert: Feb 2007

Themenautor/in

02.07.2009, 20:12

hm ja, das hab ich.. (mysql)
danke für die antwort. allerding würde ich mir eben gerne diese 2 abfragen sparen und alles in einer..

kann da keiner helfen?
Aggi#4
Benutzerbild von Aggi
Beiträge: 20
Registriert: Jun 2009

02.07.2009, 23:13

ähm ok da hat sich auch was getan ich muss mal gucken :-)

mit SubQuery (ab MySQL 4.1):

PHP:
1
2
3
4
5
6
7
8
9
<?
UPDATE
 user 
AS u
LEFT JOIN
 
(SELECT uidMIN(datum) AS mindatum FROM `orderGROUP BY uid) AS o ON u.id o.uid
SET
 u
.createDate o.mindatum
?>





mit temporärer Tabelle (MySQL 4.0 und früher):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
DROP TABLE 
IF EXISTS tmp_order;

CREATE TEMPORARY TABLE tmp_order TYPE HEAP
 SELECT uid
MIN(datum) AS mindatum FROM `orderGROUP BY uid;

UPDATE
 user
LEFT JOIN
 tmp_order ON user
.id tmp_order.uid
SET
 user
.createDate tmp_order.mindatum;

DROP TABLE IF EXISTS tmp_order;
?>


schau mal obs dir weiter hilft :-)
Geändert von Aggi am 02.07.09 um 23:19 Uhr

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de