# MYSQL- 2 tabellen mit einem select auslesen



## grünes-huhn (6. November 2008)

hi!

ich hab ein kleines problem. ich möchte zwei tabellen in einem select befehl auslesen:

dies mache ich so:


```
$sql="SELECT * FROM eb, blog";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
```

also eh simpel. nun sollte er mir alles was in diesen tabellen drin steht anzeigen, oder nicht?

in "eb" sind 2 datensätze drin, in "blog" 5.

was er tut:
er nimmt alles aus "blog" und schreibt jeden datensatz 5x.

wenn ich im select eb und blog vertausche, schreibt er alles von eb und das 2x

mach ich was falsch?

danke für eure hilfe!


----------



## deepthroat (6. November 2008)

grünes-huhn hat gesagt.:


> hi!
> 
> ich hab ein kleines problem. ich möchte zwei tabellen in einem select befehl auslesen:
> 
> ...


Du verwendest einen Verbund (JOIN) statt einer Vereinigung (UNION):

```
select * from eb UNION select * from blog;
```
Beachte aber, das die Tabellen natürlich das gleiche Schema aufweisen müssen.

Gruß


----------



## Nico Graichen (6. November 2008)

Hi

Zu erst: Bitte an die Netiquette halten!

ZUm Thema:
Wenn du von zwei Tabellen die Werte so abfragst, ohne die Datensätze zu verknüpfen, entsteht ein Kreuzprodukt.

Da ich nicht weiß, wie deine Tabellen aussehen und in Relation zu einander sind:
Du benötigst zusätzliche ein Where-Klausel, in der du die Tabellen mit einander verknüpfst, also festlegst, wie die Relation für diese Abfrage aussieht.

Bsp.

```
SELECT * FROM TabA, TabB WHERE TabA.ID = TabB.IDA
```


----------



## grünes-huhn (6. November 2008)

deepthroat hat gesagt.:


> Du verwendest einen Verbund (JOIN) statt einer Vereinigung (UNION):
> *sql Code: *
> 
> 
> ...




Super Danke, hat mir sehr geholfen!!
UNION kannte ich nicht. Man lernt nie aus.

Ja die Tabellen sind exakt von der gleichen Struktur. 




@Nico Graichen: sorry, meine Groß-Kleinschreibung.....


----------



## deepthroat (6. November 2008)

grünes-huhn hat gesagt.:


> UNION kannte ich nicht. Man lernt nie aus.


Ja, anscheinend kennt der SQL Code Highlighter hier im Forum das UNION Schlüsselwort auch nicht... 

Gruß


----------



## grünes-huhn (6. November 2008)

für alle, die vor ähnlichem Problem stehen:

Aufgabe:
Die aktuellsten 3 Datensätze aus zwei Tabellen mit gleicher Struktur.

SELECT:


```
SELECT * FROM eb UNION SELECT * FROM blog ORDER by datum LIMIT 3
```


----------



## grünes-huhn (6. November 2008)

deepthroat hat gesagt.:


> Ja, anscheinend kennt der SQL Code Highlighter hier im Forum das UNION Schlüsselwort auch nicht...
> 
> Gruß



Na wenns nichtmal der kennt...


----------

