Mysql
 sql >> Baza danych >  >> RDS >> Mysql

pobieranie danych z dwóch tabel w mysql, tutaj nie działałoby join

Jeśli dobrze zrozumiałem, powinno to zrobić to, czego potrzebujesz:

$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
    // Do your outputting here.
}

Edytuj

Na twoją prośbę przejdę dalej i wyjaśnię zapytanie. Częścią, która prawdopodobnie Cię myli, jest to podzapytanie:

(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))

IF EXISTS mówi MySQL, aby zwrócił TRUE lub FALSE, jeśli część bezpośrednio po niej 'istnieje' (zawiera wynik). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 po prostu mówi MySQL, aby znalazł wiersz w user_specialty gdzie s.id = us.sid (dopasowany identyfikator specjalizacji) i us.uid = '$id' (identyfikator należy do użytkownika).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JEŚLI warunek Wykonaj zapytanie, w przeciwnym razie wykonaj inne zapytanie

  2. MySQL json_arrayagg z lewym sprzężeniem bez wyników

  3. Wstawianie danych za pomocą mysqli

  4. Jak używać OR &AND w klauzuli WHERE w mysql

  5. Mysql:Wybierz wszystkie dane między dwiema datami