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
|