| join?? | 
	
ketchxup
 Feiertags-Poster Threadstarter
  
 
 
 
 Beiträge: 38  | 
 
hallo, 
da ich überhaupt nicht weiterkomme 
wollte ich nur mal wissen ob sowas möglich ist...: 
ich habe 2 tabellen . tab1 = id,name; tab2 = freund.id, feind.id,team_s,team_g 
jetzt möchte ich die namen haben also  von freundID und feindID 
und dazu kommt noch in der Where-clause (team_s = $id  OR team_g = $id ) 
hab mit join usw probiert aber es funz nicht... 
was natürlich ging war als es mit 2,3 abfragen versuchte aber ich möchte nur eine Abfrage 
geht das? 
 
danke  
 
 
  
 Diese Nachricht wurde geändert von: ketchxup  | 
|   Profil
  Editieren
  Zitieren
 | 
languitar
 Foren-Team 
 
 
 
 Beiträge: 2795  | 
 
1:  | SELECT a.name, b.name FROM freund a, freind b WHERE a.id = b.id AND "deine Bedingung"  |  
  
Bin mir gerrade ausm Kopf nicht mehr sicher, ob hinter das FROM freund.a oder freund a muss.
  
  | 
|   Profil
  Editieren
  Zitieren
 | 
chip
 Foren-Team 
 
 
 
 Beiträge: 419  | 
 
languitar schrieb am 12.08.2005 14:05 
1:  | SELECT a.name, b.name FROM freund a, freind b WHERE a.id = b.id AND "deine Bedingung"  |  
  
 
Bin mir gerrade ausm Kopf nicht mehr sicher, ob hinter das FROM freund.a oder freund a muss. 
 
 |   
Um genau zu sein müsste es
 1:  | SELECT a.name, b.name FROM freund AS a, feind AS b WHERE a.id = b.id AND "deine Bedingung"  |  
  
heißen. Oder man umgeht das ganze und setzt gleich die Tabellennamen anstatt eines Alias ein:
 1:  | SELECT freund.name, feind.name FROM freund, feind WHERE freund.id = feind.id AND "deine Bedingung"  |  
  
--- 
   
  | 
|   Profil
  Website
  Editieren
  Zitieren
 | 
languitar
 Foren-Team 
 
 
 
 Beiträge: 2795  | 
 
Quatsch, AS kommt hinter das SELECT, aber nicht hinters FROM 
  | 
|   Profil
  Editieren
  Zitieren
 | 
ketchxup
 Feiertags-Poster Threadstarter
  
 
 
 
 Beiträge: 38  | 
 
muss mal ausprobieren 
abee wieso FROM feind,freund? 
ne sorry ich meinte feindID und freundID und nicht feind.id, freund.id 
feindID und freundID sind in der tbl2 und die namen sind in tbl1->name
 
für mich wäre das logischer " 
 1:  | SELECT tb2.feindID ,tb2.freundID,tb1.name  FROM tb1, tb2 WHERE tb2.feindID = tb1.ID AND freundID = tb1.ID"   |  
 
oder?
 
Sonst muss ich 2 Abfragen einauen
 1:  | Select tb1.name FROM tb1, tb2 WHERE tb2.feindID = tb1.ID  |  
  
1:  | Select tb1.name FROM tb1, tb2 WHERE tb2.freundID = tb1.ID  |  
 
dann hätte ich auch die namen ...aber es wäre natürlich besser wenn es auch anders ging  
 Diese Nachricht wurde geändert von: ketchxup  | 
|   Profil
  Editieren
  Zitieren
 | 
chip
 Foren-Team 
 
 
 
 Beiträge: 419  | 
 
languitar schrieb am 12.08.2005 18:09 
Quatsch, AS kommt hinter das SELECT, aber nicht hinters FROM |   
Nur um mich zu verteidigen:
 The FROM table_references clause indicates the tables from which to retrieve rows. If you name more than one table, you are performing a join. For information on join syntax, see Section 13.2.7.1, “JOIN Syntax”. For each table specified, you can optionally specify an alias. 
 
tbl_name [[AS] alias] 
    [[USE INDEX (key_list)] 
      | [IGNORE INDEX (key_list)] 
      | [FORCE INDEX (key_list)]] |   
Quelle:  http://dev.mysql.com/doc/mysql/en/select.html
Um auf die Frage zu antworten: Es wäre so wie beschrieben möglich aber du musst auch die Aliase verwenden.
 1:  | SELECT tb2.feindID ,tb2.freundID,tb1.name  FROM tb1, tb2 WHERE tb2.feindID = tb1.ID AND tb2.freundID = tb1.ID  |  
  
--- 
   
 Diese Nachricht wurde geändert von: chip  | 
|   Profil
  Website
  Editieren
  Zitieren
 | 
ketchxup
 Feiertags-Poster Threadstarter
  
 
 
 
 Beiträge: 38  | 
 
ok danke 
 aber vor oder nach FROM ?? und wie ist es dann mit php zb $row['tb1.name'] bzw.  
 $row->tb1.name oder wie? 
 
 
 Diese Nachricht wurde geändert von: ketchxup  | 
|   Profil
  Editieren
  Zitieren
 | 
languitar
 Foren-Team 
 
 
 
 Beiträge: 2795  | 
 
OK, sollte man vielelcith vorher doch ins Manual schauen ;) 
 
Also in PHP landet nur der Feldname, nicht der Tabellenname, also nur name und nicht tb1.name 
  | 
|   Profil
  Editieren
  Zitieren
 | 
ketchxup
 Feiertags-Poster Threadstarter
  
 
 
 
 Beiträge: 38  | 
 
aber ich nöchte gleichzeitig feind name und freund name ?? mit $row['name'] bekomme ich doch nur feindname oder freundname(oder gar nix) aber nicht beides 
also es soll so aussehen 
 
test.html 
feind VS. fremd 
 
und so viel ich vestanden habe geht es mit $row->name : 
 
test.html 
feind VS. fremd 
$row->name Vs  $row->name  aber ich müsste doch dasseleb rauskriegen oder? 
 
 Diese Nachricht wurde geändert von: ketchxup  | 
|   Profil
  Editieren
  Zitieren
 | 
languitar
 Foren-Team 
 
 
 
 Beiträge: 2795  | 
 
dann machst SELECT feind.name AS feindname, freund.name AS freundname 
  | 
|   Profil
  Editieren
  Zitieren
 | 
ketchxup
 Feiertags-Poster Threadstarter
  
 
 
 
 Beiträge: 38  | 
 
danke, hat zwar 3std gedauert aber was solls  
wieder etwas neues gelernnt
 1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:  | SELECT 
     freund ,
      feind,
      t3.name AS feindname,
      t2.name AS freundname  
FROM pes_games AS t1  
   INNER JOIN pes_player AS t2 ON t1.freund = t2.ID  
   INNER JOIN pes_player AS t3 ON t1.freund = t3.ID  |  
   
P:S : mit  1:  | WHERE tb2.feindID = tb1.ID AND tb2.freundID = tb1.ID  |  
   
 ist das nicht möglich wieso weiss ich nicht aber es wird nichts angezeigt 
 Diese Nachricht wurde geändert von: ketchxup  | 
|   Profil
  Editieren
  Zitieren
 |