Forum dyskusyjne poświęcone zagadnieniom związanym z tworzeniem serwisów z wykorzystaniem zaawansowanych technologii takich jak PHP, Perl, mySQL, ASP, CGI, XML, itp.
12 października 2005, o 09:16
Mój problem jest bardzo prosty do przedstawienia, a więc:
mam tabele:
atryb1 | atryb2
-------------------------
7 | czarny
6 | biały
7 | 120
6 | 130
Musze skonstruować zapytanie które w wyniku da mi takie coś:
atryb1 | atryb2a | atryb2b
-----------------------------------------
7 | czarny | 120
6 | biały | 130
Jak powinno wyglądać to zapytanie i czy to jest wogóle możliwe??
moderator: czy nie można napisać tytułu postu który COŚ mówi!? I krzyczenie POMOŻCIE!!! naprawde niczemu nie pomaga!
Ostatnio edytowano 12 października 2005, o 19:33 przez
Spider_men, łącznie edytowano 1 raz
12 października 2005, o 16:52
a masz w tej tabeli coś, po czym można rozróżnić dane w atryb2? jeśli tak, to można napisać łamańca, który to zrobi w jednym zapytaniu.
Będzie to coś, co się nazywa self join. Lepiej jednak przemyśleć układ tabeli niż używać takich dziwnych zapytań. Nakreśl problem to pomyślimy jaka struktura danych będzie odpowiednia do jego rozwiązania.
--
pozdrawiam
piotr maj
12 października 2005, o 19:39
13 października 2005, o 10:18
w takim razie zostaje Ci tylko coś w stylu:
SELECT
s.at1, s.at2, t.at2, u.at2
FROM
search s, search t, search u
WHERE
s.at1=1
AND s.at2 LIKE 'b%'
AND t.at2 LIKE 'c%'
AND u.at2 = 2
LIMIT 1;
czyli aliasujesz tą samą tabelę wielokrotnie i wybierasz te wiersze, które spełniają jakieś kryterium. Brzydkie, pewnie niewydajne, ale możliwe
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.