Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polaczenie kilku tabel z kilkoma warunkami
Forum PHP.pl > Forum > Bazy danych > Oracle
edziu
Mam takie dwie tabele:
ID pracownika | nazwa uprawnienia | reszta nieistotna:)
0 a
0 b
0 c
1 d
1 a
Pracownicy

ID pracownika | Imie | Nazwisko | reszta nieistotna:)
0 ddd ddd
1 aaa aaa
ztym ze ilosc pracownikow jest nieograniczona a uprawnień jest 21
chodzi mi o zapytanie które zwróci mi imie nazwiska pracownika ktory ma uprawnienia a i b i c
lub a i c i tak dalej dla 2 uprawenien mam takie zapytanie:
  1. SELECT =" SELECT [Imię], [Nazwisko] "+
  2. "FROM Pracownicy "+
  3. "WHERE [ID_pracownika] IN ("+
  4. "SELECT U1.ID_pracownika "+
  5. "FROM Uprawnienia AS U1 INNER JOIN Uprawnienia AS U2"+
  6. " ON (U1.ID_pracownika = U2.ID_pracownika) AND ((U1.[Nazwa uprawnienia] ='" + checkedListBox1.Items[0].ToString() + "') AND (U2.[Nazwa uprawnienia] = '" + checkedListBox1.Items[1].ToString() + "')))";
  7.  

dla 3 juz mi niechce działąc wywala mi bład skladniowy
  1.  
  2. SELECT = " SELECT [ID_pracownika], [Imię], [Nazwisko], [Dział], [Stanowisko] " +
  3. "FROM Pracownicy " +
  4. "WHERE [ID_pracownika] IN (" +
  5. "SELECT U1.ID_pracownika " +
  6. "FROM Uprawnienia AS U1 INNER JOIN Uprawnienia AS U2" +
  7. " ON (U1.ID_pracownika = U2.ID_pracownika) AND ((U1.[Nazwa_uprawnienia] ='" + checkedListBox1.CheckedItems[0].ToString() + "') AND (U2.[Nazwa_uprawnienia] = '" + checkedListBox1.CheckedItems[1].ToString() + "')) " +
  8. " INNER JOIN Uprawnienia AS U3 " +
  9. "ON (U2.ID_pracownika = U3.ID_pracownika) AND (U3.[Nazwa_uprawnienia] = '" + checkedListBox1.CheckedItems[2].ToString() + "'))";




2 sprawy 1 nie wiem gdzie ten blad zekomo i 2 takie zapytania bym musial formułowac kolejno dla 4 warunkow 5 i tak dalej a to nie jest zbyt optymalna metoda macie koncepcje na inne rozwiazanie tego problemu??
Method
W myśl dawanie wędki a nie ryby smile.gif
To powinno załatwić Twoją sprawę: http://www.bazy-danych.info/sql/laczenie-tabel.htm
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.