#mysql #sql #webdev

Mirki mam taki problem do rozwiązania w SQL. W serwisie jest N użytkowników i każdy z nich może odnzaczyć innego użytkownika jako zaufanego. Drugi użytkownik może zrobić również to samo. I chciałbym żeby w kontekście np. użytkownika nr 1 mógł wybrać wszystkie osoby którym on zaufał ale które również odwzajemniły jego zaufanie.

I teraz zastanawiam się jak to zrobić...

myślałem
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@larvaexotech: 3 sposób ok, ale zamiast IN użyj EXISTS:
SELECT
cośtam
FROM userFriends uf
WHERE EXISTS (SELECT * FROM userFriends WHERE uf.userId = friendId AND uf.friendId = userId)
  • Odpowiedz
Cześć.
Kombinuje nad pobraniem z active directory grup domenowych i przypisanych do nich użytkowników. Sql`em można pobrać oddzielnie użytkowników i oddzielnie grupy ale bez powiązań. Kombinowal ktoś napisać takie query?

#programowanie #sql
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy da się w SQL ograniczyć działanie JOIN do pierwszego dopasowanego rekordu? Obojętnie, który to będzie, zakładam, że znajduje tylko dobre dopasowania, ale trafiają się duble.
Korzystam (read only) z tabeli, gdzie są dane z przedziałami dat - "data od" oraz "data do".. W przypadku zmian na danym ID, nowy wiersz powinien mieć o jeden dzień późniejszą datę "od" niż poprzedni wiersz datę "do". Niestety tak nie jest, bo to użytkownicy wpisują
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@macabrankov: partition by z klauzulą np row_number() = 1 ograniczy Ci już po JOINie. Finalny wynik oczywiście będziesz miał taki, że dla jednej partycji dostaniesz jeden wiersz, ale wewnątrz zapytania to i tak przemieli wszystkie rekordy. Podzapytanie jest najlepszym rozwiązaniem i nie wiem czemu piszesz że dużo kombinowania. Dodatkowo jeśli wyciągniesz te rekordy w podzapytaniu, to JOIN będzie wydajniejszy, bo mniej rekordów do połączenia.
  • Odpowiedz
@macabrankov: Problem nazywa się GROUPWISE MAX. W najbardziej uproszczonej wersji zastosuj LEFT JOIN
a JOIN b b1 ON ... LEFT JOIN b b2 ON ... AND b1.id > b2.id
WHERE b2.id IS NULL
  • Odpowiedz
Pytanie następujące poleci ktoś jakąś książkę lub kurs online na temat MS SQL Server 2012? Podstawy SQL znam zapytania itd., ale chciałbym spróbować coś dalej. Thanks from the mountain.

#sql
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#bazydanych #sql
Mirki, planuję zrobić aplikację webową która obsługiwałaby plan lekcji różnych szkół. I gdy mam jedną szkołę to łatwo zrobić mi bazę danych (tabele np. nauczyciele, przedmioty, sale itp.) Jedna gdy mam więcej szkół to jak najlepiej zbudować taką bazę danych.
1) Kilka baz danych (jedna baza -> jedna szkoła z tablami (nauczyciele, przedmioty, sale itp.).
2) Jedna baza, ale w tabelach stworzyć dodatkową kolumnę id_szkoły
3)
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Patres: Kilka baz to kiepski pomysł. Gdy będziesz chciał dodać kolejną szkołę to będziesz musiał stworzyć nową bazę. Szkoły przechowujesz w tabeli. Struktura tabel może być podobna jak przy jednej szkole. Aby połączyć np. szkołę z nauczycielami możesz stworzyć tabelę która będzie przechowywała taką relację w formie kolumn [idNauczyciela], [idSzkoly].
  • Odpowiedz
Nie mogę przywrócić kopii zapasowej z Subiekta Nexo. Przy dearchiwizacji w programie serwisowym dostaję komunikat:
Baza danych nie może zostać zdearchiwizowana na Twoim serwerze SQL 10.50.4000.0
Wersja serwera SQL, który utworzył archiwum: -1.-1, format pliku: -1, preferowany format pliku: 661

Mógłby mnie ktoś nakierować co powinienem zrobić?
#subiekt #komputery #sql #mssql #informatyka
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki! Znalazłem na dysku stronkę php którą zrobiłem pare lat temu. Nie pamiętam jak ją pisałem ale próbuję ją złamać . Może podrzucicie jakieś pomysły. Do tej pory mam:
1.[POST] po wpisaniu do loginu: 0' or 1=1# zwraca prawde status 200 i login.php ale bez kontentu.
2.[POST] w loginie: ' zwraca Warning: mysqlnumrows(): supplied argument is not a valid MySQL result resource in home/mojuser/bla/bla/login.php on line 23
3.[POST] Input: search
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@matth95: Jak pisałeś stronkę, to masz i pliki. Poszukaj sobie w nich ustawień bazy i będziesz mieć co trzeba.

No chyba, że ta stronka jest na Twoim dysku zupełnie tak samo jak ja jestem biskupem.
  • Odpowiedz
Czy wersja ms sql express jest komercyjna i można wykorzysytwać ją w firmach, do tych 10 gb?
Bo wprost nie mogę znaleźć takiej informacji, ale zakładając, że napisane "Darmowa" to chyba też się wlicza?
#sql #programowanie #microsoft
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#webdev #mysql #sql

Mireczki mam taki problem - tabelka sentences w relacją 1:n do sentencetranslations.
Potrzebuje z bazy danych wybrać ID wszystkich "sentences" które mają do siebie przypisane mniej niż 2 "sentence
translations".

Próbowałem w
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

SELECT sentences.id,COUNT(sentencetranslations.id) AS transCount FROM sentences LEFT OUTER JOIN sentencetranslations ON sentences.id = sentencetranslations.id HAVING COUNT(sentencetranslatiobs.id)<2 GROUP BY sentences.id;
  • Odpowiedz
Hej mirki, potrzebuje waszej pomocy. Mam dwie tabele administratorzy i użytkownicy, które mają 3 takie same kolumny (login, imie, nazwisko). I czy da się połączyć w jedną tabelę, aby mogła działać prosta wyszukiwarka?

#sql #programowanie #bazydanych
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Prehlu: Najlepiej pewnie by było mieć to w jednej tabeli i tylko kolumnę określającą typ użytkownika (Administrator / Zwykły użytkownik), gdzie typ użytkownika mógłby być np. w tabeli z wartościami słownikowymi. Jeśli nie chcesz zmieniać struktury danych, to po prostu zrób zapytanie z wykorzystaniem unii (ew. widok, który będzie taką unią) i na tym zapytaniu rób ograniczenia. Tylko w takim wypadku, oczywiście będziesz niezależnie wyszukiwał po dwóch tabelach. Jeśli wartości
  • Odpowiedz
Czy ktoś mógłby mi wytłumaczyć kiedy najczęściej uzywa się wszelakich joinow? Do tej pory w pracy używałem głównie wewnętrznych zlaczen a moje zapytania nie były jakieś mega zaawansowane teraz spadła na mnie całą administracja Oracle Server i trochę jest taskow do zrobienia. To trochę dziwne bo klepie procedury, widoki itp. a praktycznie nigdy nie używałem JOINOW.

#sql
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam własną aplikację #winforms napisaną w #visual #csharp i z bazą #sql. Wszystko działało dobrze dopóki nie podpiąłem użytkownika do domeny. Wyskakuje komunikat "login failed for domena\User". Jak uruchomię "jako administrator" domeny to normalnie się odpala (chociaż przy odpaleniu innej formatki też wyskakuje w/w komunikat). W menadżerze sql serwer 2008r ustawiłem logowanie na "sql server and windows authentication", ale nic to nie daje.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kiboq: U mnie działa. Więcej nie pomogę

CREATE LOGIN [DOMAIN\USER]
FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO
EXEC master..sp_addsrvrolemember @loginame = N'DOMAIN\USER', @rolename = N'sysadmin'
  • Odpowiedz
@M4ks: jakiego trupa? SQL Server jest naprawdę dobry i tańszy od Oracle. Jak nie ma konieczności używania Oracle to jest dobrą alternatywą. Dodatkowo coś tam ostatnio pisali, że ma być na Linux/Unix (czy już jest). Znam nawet miejsca gdzie używa się Access'a. Jedyne co wymarło z tego spisu to chyba Windows 8.1 bo wszyscy lecą w W10.
  • Odpowiedz
@duncanidaho2: SQL Server jest często używany, bo są po prostu takie wymagania. Kupujesz aplikację w .NET czy jakieś SharePoint czy Dynamics i musisz dokupić SQL Server. A statystyki rosną, MS zarabia.


ilośc projektów i ludzi w .NET maleje


@M4ks: serio? Niechętnie patrzę w stronę .NET (Java here), ale wydawało mi się, że .NET rośnie w siłę. Szczególnie po niby otwarciu na opensource. Wiem, że MS robi mocny marketing, żeby
  • Odpowiedz
Taki przykład - algorytm sobie wybiera osoby, które najczęściej oglądam i może je wrzucić na białą listę ewentualnie samemu mogę to zrobić i tych osób o jakiś procent częściej pojawiają się wiadomości na tablicy niż od tych normalnych.

Frontend wyciąga jsona z serwera z id uzytkownikow, ktorych obserwuje i odpytuje serwer na innym adresie o ich najnowsze wpisy po czym je laduje na stronie. Mógłbym to ładować od razu po stronie serwera,
  • Odpowiedz