[mysql] Abfrage mit JOIN

chrigu99
Hallo zusammen *michauchwiedermalmeld*

Ich habe eine Frage betreffend JOINS und mysql:

Folgende Problemstellung:
Ich möchte alle Datensätze aus Tabelle eins haben welche einer bestimmten gid entsprechen. In der Tabelle sind jedoch nur pid's gespeichert, anhand welcher ich in der Tabelle zwei nachsehen muss ob diese pid auch die bestimmte gid hat. Also folgender Tabellenaufbau:

Tabelle eins
id pid wert

Tabelle zwei
id pid gid

So long

Chris
Chris Hunter
ach auch mal wieder am start :-D

anbei dein lang ersehntes query:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:


SELECT 
  tab1.id AS id, 
  tab1.pid as pid1,  
  tab1.wert AS wert, 
  tab2.pid AS pid2 , 
  tab2.gid AS gid 
FROM tab1 
LEFT JOIN tab2 ON tab1.pid=tab2.pid 
WHERE 1




Hoffe das hilft dich weiter ;-)
chrigu99
danke erstma... funzt nicht ganz wie ich möchte, hier der schnipsel wie er im script steht:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
$u_pics = mysql_fetch_array(mysql_query('SELECT
'.$cfg_page_shortkey.'_gallery_mypix.id AS id,
'.$cfg_page_shortkey.'_gallery_mypix.pid as pid1,
'.$cfg_page_shortkey.'_gallery_images.id AS pid2 ,
'.$cfg_page_shortkey.'_gallery_images.gid AS gid
FROM '.$cfg_page_shortkey.'_gallery_mypix
LEFT JOIN '.$cfg_page_shortkey.'_gallery_images 
ON '.$cfg_page_shortkey.'_gallery_mypix.pid='.$cfg_page_shortkey.'_gallery_images.id
WHERE '.$cfg_page_shortkey.'_gallery_images.gid="'.$gallery['id'].'"')OR die(mysql_error()));
Chris Hunter
dann musst du das select auf tab2 machen wenn dus so willst weil die where clausel sich auf tab2 bezieht :-D versuchs mal...
chrigu99
Die Abfrage macht er irgendwie nicht sauber... Habs nochmals etwas umgestaltet, weiss gerade nicht was falsch ist:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
$u_pics = mysql_fetch_array(mysql_query('
SELECT
	mypix.id
FROM
	'.$cfg_page_shortkey.'_gallery_images img
	LEFT JOIN '.$cfg_page_shortkey.'_gallery_mypix mypix ON img.id=mypix.pid
WHERE
	img.gid='.$gallery['id'])or die(mysql_error()));


Fehler:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Chris Hunter
fehlt n unterstrich:

FROM
'.$cfg_page_shortkey.'_gallery_images img <---
chrigu99
wie? wo? *verpeil...*
Chris Hunter
ja oder das img is zu viel:

$u_pics = mysql_fetch_array(mysql_query('
SELECT
mypix.id
FROM
'.$cfg_page_shortkey.'_gallery_images img
LEFT JOIN '.$cfg_page_shortkey.'_gallery_mypix mypix ON img.id=mypix.pid
WHERE
img.gid='.$gallery['id'])or die(mysql_error()));
chrigu99
hmm mit dem img definier ich doch der kürzel von '.$cfg_page_shortkey.'_gallery_images oder?
chrigu99
ich kriegs nicht auf die reihe, habs schon wieder umgeschrieben anhand einem netzbeispiel:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$u_pics = mysql_fetch_array(mysql_query('
SELECT
	'.$cfg_page_shortkey.'_gallery_mypix.id
FROM
	'.$cfg_page_shortkey.'_gallery_mypix
INNER JOIN '.$cfg_page_shortkey.'_gallery_images ON '.$cfg_page_shortkey.'_gallery_mypix.pid='.$cfg_page_shortkey.'_gallery_images.id
AND	'.$cfg_page_shortkey.'_gallery_images.gid='.$gallery['id'])or die(mysql_error()));

funzt auch nich verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt verwirrt
Chris Hunter
neee in dem fall ja net so gell. komm ma am besten ins quakenet IRC #htw.game

hier gehts schnell: http://htw.www.pherrex.com/pub.php?a=irc_login
Chris Hunter