MySQL-Query
Bramburi
- datenbank
Hallo
Ich hab wie's scheint mit SQL so meine Troubles.
Mein Script(PHP/MySQL 5.o.51a) soll insgesamt 4 Tabellen mit 3 Dropdown-Menüs(select/option) abfragen.
SELECT * FROM festivale, f_categories, f_countries, f_months
INNER JOIN f_categories ON f_categories.id = festivale.category
INNER JOIN f_countries ON f_countries.id = festivale.country
INNER JOIN f_months ON f_months.id = festivale.month
WHERE festivale.title LIKE %s
AND f_categories.category LIKE %s
AND f_countries.country LIKE %s
AND f_months.month LIKE %s
Die Fehlermeldung lautet : "Not unique table/alias: 'f_countries'"
obwohl alle f_categories-Einträge identisch sind.
Wenn ich f_categories aus der 1. Zeile entferne beginnt das selbe Spiel mit f_countries usw.
Wenn ich aus der 1. Zeile außer festivale alle tables lösche wird
überhaupt keine Fehlermeldung angezeigt. Weder PHP- noch SQL-Errors.
Allerdings bekomm dann auch keinerlei Abfrageergebnisse geliefert.
Bitte hat jemand nen Tip was ich falsch mache.
Danke schon mal.
Gruß Bramburi
Hallo
SELECT * FROM festivale, f_categories, f_countries, f_months
INNER JOIN f_categories ON f_categories.id = festivale.category
INNER JOIN f_countries ON f_countries.id = festivale.country
INNER JOIN f_months ON f_months.id = festivale.month
WHERE festivale.title LIKE %s
AND f_categories.category LIKE %s
AND f_countries.country LIKE %s
AND f_months.month LIKE %sDie Fehlermeldung lautet : "Not unique table/alias: 'f_countries'"
obwohl alle f_categories-Einträge identisch sind.
Bitte hat jemand nen Tip was ich falsch mache.
Du verwendest Tabellen mehrfach ohne einen Aliasnamen zu vergeben, ich drösele Dein Statement auf:
SELECT
*
FROM
festivale,
-- nette Kreuzprodukte, die bestimmt nicht gewollt sind:
f_categories, -- zum ersten Mal f_categories
f_countries, -- zum ersten Mal f_countries
f_months
INNER JOIN
f_categories -- zum zweiten Mal f_categories
-- Hier wäre ein Aliasname erforderlich!
ON
f_categories.id = festivale.category
INNER JOIN
f_countries -- zum zweiten Mal f_countries ...
ON
f_countries.id = festivale.country
INNER JOIN
f_months -- und zum zweiten Mal f_month ...
ON
f_months.id = festivale.month
WHERE
festivale.title LIKE %s
AND
f_categories.category LIKE %s
AND
f_countries.country LIKE %s
AND
f_months.month LIKE %s
Die kommagetrennte Liste zu Beginn ist vermutlich nicht so gewollt.
Freundliche Grüße
Vinzenz