Datensätze vergleichen

Alex S

Mitglied
Hallo User.

Ich habe da ein Problem, mit dem ich nicht weiter komme.
Ich habe ein Array, in dem Suchwörter enthalten sind und ich habe eine Tabelle, in der einmal das Suchwort und eine ID aus einer anderen Tabelle sind.
Jetzt möchte ich folgendes:
Wenn z.B. im Array die Wörter Hallo und Tschüss sind, dann soll die Tabelle alle Datensätze suchen, in denen das Suchwort Hallo ist und die ID 1 ist und es soll alle Datensätze finden, in denen das Suchwort Tschüss ist und die ID auch 1 ist.

Jetzt kommt das Problem:
Ausgegeben werden sollen aber nur Datensätze aus der anderen Tabelle, die alle Suchwörter enthalten

Alex
 
Mach mir bitte ein Datenbeispiel mit Tabellen. So in der Art:
Das hab ich:
Code:
Tabelle mitarbeiter
id | firma_id | name
--------------------
1  | 1        | MA1
2  | 1        | MA2
3  | 2        | MA3

Tabelle Firma
id | name
---------------------
1  | firma1
2  | firma2

Nun will ich wissen, welche Firma wieviele Mitarbeiter hat. Das soll dann so aussehen
Code:
firma_id | firma_name | anzahl_mitarbeiter
------------------------------------------
1        | firma1     | 2
2        | firma3     | 1
 
Code:
Tabelle 1 (die mit den Suchwörtern
id, linkid, suchwort

Code:
Tabelle 2 (Links, die angezeigt werden sollen
id, link

Ich hoffe, dass du das meinst :)

Alex
 
Mach mal noch ien Datenbeispiel dazu. Ich versteh deine Erklärung nicht.
Siehe in meinem Postings von oben was ich mit Datenbeispiel meine.

Wenn du nach 'Hallo, Tschüss' suchst, warum dann die ID=1? Muss die immer 1 sein?
 
Code:
Tabelle 1
id | linkid | suchwort
--------------------
1  | 1        | Facebook
2  | 1        | Mark
3  | 2        | Suche
 
Tabelle 2
id | Link
---------------------
1  | facebook.com
2  | google.de

Nein es muss nicht immer 1 sein das war nur mal ein Beispiel von mir.

Alex
 
SQL:
SELECT
	t2.id,
	t2.link
FROM
	tabelle1 AS t1
	INNER JOIN tabelle2 AS t2
		ON t1.linkid = t2.id
WHERE
	-- Die Werte aus dem Array in eine Kommaliste bringen und hier einsetzen
	FIND_IN_SET(t1.suchwort, 'Facebook,Mark')
GROUP BY
	t2.id,
	t2.link
HAVING
	-- Die Anzahl Einträge im Array hier einfügen
	COUNT(*) = 2
 
Zuletzt bearbeitet von einem Moderator:
Danke an Yaslaw für seinen Schnelle Hilfe.

Aber ich hab es jetzt auf eine etwas andere Art gelöst.
Trotzdem vielen Dank an euch.

Alex
 
Also:

1. Auslesen aller Links
2. mit for-Schleife wird Jedes Suchwort gesucht, welches die Linkid des Link hat
3. in der for-Schleife prüfe ich ob die suche erfolgreich war, wenn ja setze ich eine Variable auf 1, wenn nicht bleibt sie auf 0.
4. es wird überprüft, ob die Variable 1 ist.
5. Links werden ausgegeben

Alex
 

Neue Beiträge

Zurück