![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 13 Dołączył: 15.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak już próbowałem, nie czytacie o co mi chodzi. Ja chce zwrócić te osoby które mają obie cechy 1,4 a wasze zapytania mi zwrócą tylko te osoby które posiadają cechy 1 lub 4 oraz 1 i 4, tu nie o to chodziło.
Wyjściem by było zrobić dwa joiny do tej samej tabeli z nowym aliasem i dać warunek, ale co jeśli naraz będę chciał pobrać te osoby które mają 20 określonych cech. Dawać 20 joinów? chyba da się to jakoś inaczej zrobić? Ten post edytował eai 19.02.2008, 16:00:10 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
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:
Teraz tylko dorobić warunek where
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? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
I zapytanie:
IN ( 1, 4 ) - identyfikatory cech COUNT( * ) = 2 - ilość cech Czyli mniej więcej to co podał kitol. Na pewno 100x lepsze niż zamienianie identyfikatorów na tekst i zabawa w wyrażenia regularne. Ten post edytował Kicok 19.02.2008, 18:36:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:18 |