[MySQL] "Tabellen mit gleichen Spaltennamen" + Suche

Ronja

Räubertochter
ID: 51429
L
4 Mai 2006
1.010
33
Hi,

folgendes Problem.

Ich möchte in 2 Tabellen suchen, die leider komplett die gleichen Spaltennamen haben. Die Spaltennamen kann ich leider auf Grund Ihrer Verwendung nicht ändern, das wäre zu komplex.

Nun bekomme ich folgende Fehlermeldung:

Code:
Error: MySQL query 'SELECT Id, Title, Content FROM art, con WHERE Title LIKE '%test%' OR Content LIKE '%test%' ORDER BY Id, Title, Content' failed.
>1052: Column 'Id' in field list is ambiguous

Ich weiß, dass es daran liegt, dass die Spaltennamen gleich sind, aber wie muss ich das codetechnisch umsetzen, damit es funktioniert?

Danke für Eure Hilfe
Ronja
 
Setz den Tabellennamen vor die Spalte:

SELECT art.ID , art.title ... FROm art , con
ORDER BY art.ID

Du hast allerdings kein Join-Kriterium zwischen den beiden Tabellen, das wird ein kartesisches Produkt geben.
 
Danke erstmal, ich versuch es gleich.
Was ist ein kartesisches Produkt? Und wie verhindere ich das?

Gruß Ronja
 
Kartesisches Produkt auch Kreuzprodukt genannt bedeutet das jeder Datensatz aus der einem Tabelle mit jedem aus der anderen Tabelle verknüpft wird.
 
Was ist ein kartesisches Produkt? Und wie verhindere ich das?
Gruß Ronja

Du hast zwei Tabellen nämlich art und con, die Du in einem SELECT ansprichst.
Da Du Deinem System nicht mitteilst, wie die einzelnen Zeilen dieser Tabelle miteinander verknüpft werden sollen, verbindet das System jede Zeile von art mit jeder Zeile von con. Dies ist in den seltensten Fällen so gewünscht. Du solltest Deinem System sagen, wie es die einzelnen Zeilen miteinander verbinden soll. z.B. mit

SELECT art.Id, art.Title, at.Content
FROM art, con
WHERE
art.ID = con.ID
AND ( Title LIKE '%test%' OR Content LIKE '%test%' )
ORDER BY Id, Title, Content


vergiss in diesem Fall nicht, die übrigen Bedingungen in Klammern zu setzen