Johann: SQL INNER JOIN

Beitrag lesen

Hallo Leute,

ich hab eine SQL-Frage. Bin da ein ziemlicher Neuling und tu mich mit den JOINs etwas schwer.

Meine Mysql-db hat in Tabelle A 700.000 records und in Tabelle B 600.000 records.

Tabelle A
number,serial,name,description,date

Tabelle B
number,serial,value,date

Nun möchte ich 2 Querys erstellen.

  1. Ich möchte alle Einträge von Tabelle B haben, bei denen number und serial auch in Tabelle A existieren.
    Mein Versuch:

SELECT *
FROM TabelleB
INNER JOIN TabelleA
ON TablleA.serial=TabelleB.serial AND TabelleA.number=TabelleB.number
WHERE TabelleB.serial LIKE '%812%'
AND DATE( TabelleB.date ) = '2009-11-19'

Der Query läuft auch und läuft und läuft und läuft. Der MYSQL Deamon schnappt sich die komplette CPU und die Abfrage spuckt auch
nach 5 Min noch nichts aus. Stimmt die Abfrage so? Ist es "nur" ein Performanceproblem?

Denn die Abfrage...
SELECT *
FROM TabelleB
WHERE serial LIKE '%812%'
AND DATE( date ) = '2009-11-19
... spuckt mir in unter 1 Sekunde die knapp 5000 records aus.

  1. Ich möchte alle Einträge von Tabelle B haben, bei denen number und serial  in Tabelle A NICHT existieren.

Noch kein Versuch.

Danke für eure Hilfe.

ciao,
Johann