Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysq] Warunek operacje na zbiorach liczb
eai
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Witam

Mamy 3 tabele:

1. Tabela1
Kod
id|nazwa


2. Tabela2
Kod
id|nazwa


3. Tabela3
Kod
id|id_tabela1|id_tabela2


A teraz jak to ma działać:

Mamy takie dane:

Tabela1:
Kod
1|Tomek
2|Krzysiek
3|Wojtek
4|Agnieszka
5|Marek


Tabela2:
Kod
1|Miły
2|Agresywny
3|Życzliwy
4|Sumienny


Tabela3:
Kod
1|1|1
2|1|4
3|2|1
4|2|2
5|2|4
6|3|3
7|4|1
8|4|2
9|4|4
10|5|4

Pierwsza tabela zawiera osoby, druga zawiera cechy osobowości, a trzecia tabela przypisuje osobie konkretne osobowości.
Potrzebuję teraz takiego zapytania które pobierze mi z tabeli1 te osoby które mają określone cechy.
np. chcę pobrać te osoby które posiadają obie cechy np Miły oraz Sumienny.

Jak to zrobic?

Ten post edytował eai 19.02.2008, 15:04:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
eai
post
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Może inaczej zrobie to na zasadzie porównywania ciągów tekstowych.

To zapytani mi ładnie wypisuje kto ma jakie cechy:
  1. SELECT tabela1.nazwa AS imie, GROUP_CONCAT(DISTINCT t2.nazwa ORDER BY t2.nazwa SEPARATOR ',') AS 'cechy'
  2. FROM tabela1 AS t1
  3. JOIN tabela3 AS t3 ON (t1.id= t3.id_tabela1)
  4. JOIN tabela2 AS t2 ON (t3.id_tabela2 = t2.id)
  5. GROUP BY t1.nazwa



Teraz tylko dorobić warunek where
  1. SELECT tabela1.nazwa AS imie, GROUP_CONCAT(DISTINCT t2.nazwa ORDER BY t2.nazwa SEPARATOR ', ') AS 'cechy'
  2. FROM tabela1 AS t1
  3. JOIN tabela3 AS t3 ON (t1.id= t3.id_tabela1)
  4. JOIN tabela2 AS t2 ON (t3.id_tabela2 = t2.id)
  5. WHERE '1,4' LIKE GROUP_CONCAT(DISTINCT t2.nazwa ORDER BY t2.nazwa SEPARATOR ',')
  6. GROUP BY t1.nazwa



Mam tylko problem ze składnią sql nie wiem jak w efekcie otrzymać LIKE %GROUP_CONCAT(DISTINCT t2.nazwa ORDER BY t2.nazwa SEPARATOR ', ')%

jak te %% do tego wstawić żeby wyłapał to?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:59