Daniel Wojciechowski

Daniel Wojciechowski Skład DTP, Grafik,
Nowe 7 Dni Gryfina

Temat: Przeszukiwanie wartości, IF i kilka LEFT JOIN

Witam.

Mam dość spore zapytanie w MYSQL i głowię się nad wynikiem dla jednej z kolumn. Oto one:



SELECT t.id AS tid, t.tytul, t.tresc, t.data, u.imie, u.nazwisko, t.rw_link, t.status, t.miasto AS mid, COUNT(p.id) AS podpisy, m.miasto AS nazwa_miasta, m.rw_miasto, m.rw_gmina

FROM ncpp_tematy t
LEFT JOIN ncpp_uzytkownicy u ON t.autor = u.id
LEFT JOIN ncpp_podpisy p ON t.id = p.id_tematu
LEFT JOIN ncpp_miasta m ON t.miasto = m.id
WHERE t.id='1'
LIMIT 1



I teraz jak się dowiedzieć czy w tabeli ncpp_podpisy jest p.id_autora = 8 ? chciałbym uzyskać odpowiedź jako dodanie nowej kolumny z informacją TAK gdy znajdzie lub NIE gdy nie znajdzie. Próbowałem w SELECT dodać


IF(p.id_autora=8,'TAK','NIE') AS result


ale tylko dla p.id_autora=1 zwraca mi TAK a wiem że '8' zawiera się w dołączonej tabeli (LEFT JOIN ncpp_podpisy p ON t.id = p.id_tematu )

konto usunięte

Temat: Przeszukiwanie wartości, IF i kilka LEFT JOIN

CASE WHEN p.id_autora=8 THEN 'TAK' ELSE 'NIE' END

odsyłam do manuala jak chcesz więcej
Daniel Wojciechowski

Daniel Wojciechowski Skład DTP, Grafik,
Nowe 7 Dni Gryfina

Temat: Przeszukiwanie wartości, IF i kilka LEFT JOIN

Ten sam przypadek co w IF...dla jedynki "mówi" tak a dla reszty już 'nie'... zasięgnąłem wiedzy znajomego który naprowadził mnie na rozwiązanie i oto działające zapytanie:


SELECT t.id AS tid, t.tytul, t.tresc, t.data, u.imie, u.nazwisko, t.rw_link, t.status, t.miasto AS mid,
COUNT(p.id) AS podpisy, m.miasto AS nazwa_miasta, m.rw_miasto, m.rw_gmina,
IF (8 IN (SELECT z.id_autora FROM ncpp_podpisy z WHERE z.id_tematu = 1), 'tak','nie') AS result

FROM ncpp_tematy t
LEFT JOIN ncpp_uzytkownicy u ON t.autor = u.id
LEFT JOIN ncpp_podpisy p ON t.id = p.id_tematu
LEFT JOIN ncpp_miasta m ON t.miasto = m.id
WHERE t.id='1'
LIMIT 1


I tak oto w zależności czy w podzbiorze znajdzie się dana cyfra (przed IN, u nas cyfra 8) wyświetli nam w nowym polu 'result' wartość 'tak' lub 'nie'. Piszę bardziej szczegółowo, dla tych co będą szukać, bo wiem, jak wiele wątków trzeba czasem przekopać, żeby znaleźć "wartościową" wypowiedź.
Na przyszłość.. nie odsyłaj do manuala ;). Temat zamykam.Działa!Daniel Wojciechowski edytował(a) ten post dnia 05.07.11 o godzinie 03:08

Następna dyskusja:

przeszukiwanie wg pola zawi...




Wyślij zaproszenie do