[php + mysql] zapytanie do dwóch tabel jednocześnie

0

Mam dwie tabele:

  1. KOLEJKA, która zawiera pola:
ID,ALIAS, IMIE, NAZWISKO, ADRES, DATA_DODANIA
  1. UZYTKOWNIK, która zawiera pola:
ID, ALIAS, IMIE, NAZWISKO, ADRES, DATA_DODANIA, GRUPA

czyli różni się tylko ostatnim polem.

Chciałbym sprawdzić podczas dodawania nowego użytkownika czy ALIAS już istnieje w bazie danych w tych dwóch tabelach.

Dla przykładu:
Po zatwierdzeniu użytkownika z KOLEJKA jego dane przenoszone są do UZYTKOWNIK.

W tabeli KOLEJKA mam 1 wpis:

1, freebird, Roland, C., Ulica 5, 20.10.2005

w tabeli UZYTKOWNIK nie mam żadnych danych.

Teraz robię zapytanie:

"SELECT * FROM kolejka as k, uzytkownik as u WHERE k.alias='freebird' OR u.alias='freebird'";

u mnie niestety pokazuje 0 rezultatów.

DLACZEGO ?

0
Freebird napisał(a)
"SELECT * FROM kolejka as k, uzytkownik as u WHERE k.alias='freebird' OR u.alias='freebird'";

u mnie niestety pokazuje 0 rezultatów.

DLACZEGO ?

Zastanów się, co właściwie to zapytanie powinno wyświetlić? Co to jest "SELECT * FROM 2 tabele" ?

  1. KOLEJKA, która zawiera pola:
    ID,ALIAS, IMIE, NAZWISKO, ADRES, DATA_DODANIA

  2. UZYTKOWNIK, która zawiera pola:
    ID, ALIAS, IMIE, NAZWISKO, ADRES, DATA_DODANIA, GRUPA

Chciałbym sprawdzić podczas dodawania nowego użytkownika czy ALIAS już istnieje w bazie danych w tych dwóch tabelach.

Po zatwierdzeniu użytkownika z KOLEJKA jego dane przenoszone są do UZYTKOWNIK.

Jeżeli mogę, to chciałbym zwrócić Twoją uwagę na błąd (?)(no, błąd to za dużo powiedziane - trochę dziwny pomysł) w samym projekcie bazy. Spróbuj to zrealizować inaczej:

  1. Zostaje tylko tabela UZYTKOWNIK. Uznajemy, ze każdy użytkownik już "zatwierdzony" jest przydzielany do jakiejś grupy. Wniosek = użytkownik z pustą grupą = użytkownik czekający na zatwierdzenie.
    albo
  2. Podobnie jak wyżej, ale jeżeli nie chcesz tak, to dodaj jeszcze jeden atrybut do tablicy UZYTKOWNIK - pole binarne "Zatwierdzony". Jeżeli jest 1 - to jest to normalny uzytkownik, jezeli 0 - czekający w kolejce.
    albo
  3. Zostawiamy tablicę użytkownik. Tablica KOLEJKA zawiera tylko ID uzytkownika i ew. datę dodania do kolejki, połączone z ID z tablicy UZYTKOWNIK. Użytkownicy czekający w kolejce są zapisywani w "normalnej" tablicy, ALE dodatkowo umieszczasz wpis w tej małej tablicy KOLEJKA.
0

Zastanów się, co właściwie to zapytanie powinno wyświetlić? Co to jest "SELECT * FROM 2 tabele" ?

W rzeczy samej chciałbym pobrać WSZYSTKIE (*) pola, z tych dwóch tabel, gdzie są spełnione warunki "WHERE k.alias='freebird' OR u.alias='freebird'"

Jeżeli mogę, to chciałbym zwrócić Twoją uwagę na błąd (?)(no, błąd to za dużo powiedziane - trochę dziwny pomysł) w samym projekcie bazy. Spróbuj to zrealizować inaczej:

  1. Zostaje tylko tabela UZYTKOWNIK. Uznajemy, ze każdy użytkownik już "zatwierdzony" jest przydzielany do jakiejś grupy. Wniosek = użytkownik z pustą grupą = użytkownik czekający na zatwierdzenie.
    albo
  2. Podobnie jak wyżej, ale jeżeli nie chcesz tak, to dodaj jeszcze jeden atrybut do tablicy UZYTKOWNIK - pole binarne "Zatwierdzony". Jeżeli jest 1 - to jest to normalny uzytkownik, jezeli 0 - czekający w kolejce.
    albo
  3. Zostawiamy tablicę użytkownik. Tablica KOLEJKA zawiera tylko ID uzytkownika i ew. datę dodania do kolejki, połączone z ID z tablicy UZYTKOWNIK. Użytkownicy czekający w kolejce są zapisywani w "normalnej" tablicy, ALE dodatkowo umieszczasz wpis w tej małej tablicy KOLEJKA.

Otóż takie rozwiązanie nie bardzo mi pasuję ponieważ nie wszystkie pola z KOLEJKA zostaną przekopiowane do UZYTKOWNIK to po pierwsze. A po drugie to zależy mi na numerowaniu ID bez czarnych dziur, które mogą zrobić nie zatwierdzeni w KOLEJKA.

Np.

1 uzytkownik1 aktywny
2 uzytkownik2 aktywny
3 uzytkownik3 kolejka
4 uzytkownik4 odrzucony
5 uzytkownik5 odrzucony
6 uzytkownik6 odrzucony
7 uzytkownik7 odrzucony
8 uzytkownik8 aktywny

Po co zbierać dane o użytkownikach odrzuconych??

Zależy mi żeby numer ostatni ID był równy ilości aktywnych użytkowników.

Czy ktoś się bawił podwójnymi zapytaniami ???

Interesuje mnie tylko informacja o przykładach lub stwierdzenie czy to zapytanie jest w porządku??

1 użytkowników online, w tym zalogowanych: 0, gości: 1