# kann man gleichzeitig 2 tabellen mit select abfragen ?



## spesso (18. Mai 2003)

Hoi all,

ich habe zwei identische Tabellen erstellt und nun möchte ich gleichzeitig zwei Tabellen via suchfunktion miteinander abfragen z.B. 


```
<?
	$query = "
	SELECT 		* 
	FROM 		besepiel_pers AND beispiel2_pers
	WHERE 		pers_name LIKE '%".$searchstring."%' 
			OR	pers_description LIKE '%".$searchstring."%' 
			OR	pers_address LIKE '%".$searchstring."%' 
			OR	pers_phone LIKE '%".$searchstring."%' 
			OR	pers_email LIKE '%".$searchstring."%' 
	ORDER BY	pers_name ASC	
	";
```

wie muss der code genau aussehen damit es funktioniert ?


----------



## Thomas Darimont (18. Mai 2003)

Servus!

Versuchs mal mit nem UNION ...

Gruss Tom


```
SELECT Tabelle1.index, Tabelle1.pers_name, Tabelle1.pers_description, Tabelle1.pers_address, Tabelle1.pers_phone, Tabelle1.pers_email
FROM Tabelle1 UNION SELECT Tabelle2.index, Tabelle2.pers_name, Tabelle2.pers_description, Tabelle2.pers_address, Tabelle2.pers_phone, Tabelle2.pers_email
FROM Tabelle2;
```


----------



## spesso (18. Mai 2003)

funktioniert irgendwie nicht ... bekomme Fehlermeldungen


----------



## Thomas Darimont (18. Mai 2003)

Servus!



> funktioniert irgendwie nicht ... bekomme Fehlermeldungen



Welche ... ?

Welche DB ?

hast du die Tabellen Namen angepasst?

Bei einer UNION-Abfrage müssen die Tabellenstrukturen der beiden Tabellen übereinstimmen ...:

Im Beispiel Tabelle1

```
index pers_name pers_description pers_address pers_phone pers_email
1 Tom2 hkjhjkhjk hjkhkjhklj 99999997666 jjllllll@sssss.de


index pers_name pers_description pers_address pers_phone pers_email
1 Tom1 jjjjjj kkkkk 78978979 jkjkljkl@dddd.de



Abfrage:

SELECT Tabelle1.index, Tabelle1.pers_name, Tabelle1.pers_description, Tabelle1.pers_address, Tabelle1.pers_phone, Tabelle1.pers_email
FROM Tabelle1 UNION SELECT Tabelle2.index, Tabelle2.pers_name, Tabelle2.pers_description, Tabelle2.pers_address, Tabelle2.pers_phone, Tabelle2.pers_email
FROM Tabelle2;

Ergibt:

index pers_name pers_description pers_address pers_phone pers_email
1 Tom1 jjjjjj kkkkk 78978979 jkjkljkl@dddd.de
1 Tom2 hkjhjkhjk hjkhkjhklj 99999997666 jjllllll@sssss.de

...
```

Gruss Tom


----------



## Thomas Darimont (18. Mai 2003)

Servus!

Db Beispiel!

Gruss Tom


----------



## spesso (18. Mai 2003)

Hallo tdar2 erstmal besten Dank für die Hilfe aber es will immer noch nicht recht. so funktioniert es:


```
<?
		
			  
	$query = "
	SELECT 	    pers_id, cat_id, pers_name, pers_description, pers_address, pers_phone, pers_email, pers_picture
	FROM 		Tabelle1 	WHERE 		pers_name LIKE '%".$searchstring."%' 
			OR	pers_description LIKE '%".$searchstring."%' 
			OR	pers_address LIKE '%".$searchstring."%' 
			OR	pers_phone LIKE '%".$searchstring."%' 
			OR	pers_email LIKE '%".$searchstring."%' 
	ORDER BY	pers_name ASC	
	";
```

so funzt es ned :


```
<?
		
			  
	$query = "
	SELECT 	    pers_id, cat_id, pers_name, pers_description, pers_address, pers_phone, pers_email, pers_picture
	FROM 		Tabelle1 UNION SELECT pers_id, cat_id, pers_name, pers_description, pers_address, pers_phone, pers_email, pers_picture FROM Tabelle2
	WHERE 		pers_name LIKE '%".$searchstring."%' 
			OR	pers_description LIKE '%".$searchstring."%' 
			OR	pers_address LIKE '%".$searchstring."%' 
			OR	pers_phone LIKE '%".$searchstring."%' 
			OR	pers_email LIKE '%".$searchstring."%' 
	ORDER BY	pers_name ASC	
	";
```

irgendwie klappt das mit UNION SELECT nicht ...


----------



## Patrick Kamin (18. Mai 2003)

*-*

Ich gehe mal davon aus, dass es sich um eine MySQL Datenbank handelt. Da gibt es in den aktuellen Versionen keine Sub-Selects. Trenn deine Tabellennamen nach dem "FROM" mit Kommatas und du wirst Erfolg haben.


----------



## spesso (18. Mai 2003)

@Caminus  

ja es handelt sich um eine MySQL DB nun ich habe mal was gemacht so weit ich dich verstanden habe jedoch ohne Erfolg.
Kannst Du mir eine Code-Beispiel geben damit ich es genau so machen kann wie du meinst.

Danke für deine Hilfe


----------



## melmager (19. Mai 2003)

SELECT  * FROM Tabelle1 as t1 , Tabelle2 as t2 WHERE 
 t1.pers_name LIKE '%".$searchstring."%' 
 OR
 t1.pers_description LIKE '%".$searchstring."%' 
 OR
 t1.pers_address LIKE '%".$searchstring."%' 
 OR
 t1.pers_phone LIKE '%".$searchstring."%' 
 OR
 t1.pers_email LIKE '%".$searchstring."%'
 OR
t2.pers_name LIKE '%".$searchstring."%' 
 OR
 t1.pers_description LIKE '%".$searchstring."%' 
 OR
 t2.pers_address LIKE '%".$searchstring."%' 
 OR
 t2.pers_phone LIKE '%".$searchstring."%' 
 OR
 t2.pers_email LIKE '%".$searchstring."%' 

    ORDER BY    t1.pers_name ASC


----------

