За последние 24 часа нас посетили 18378 программистов и 1635 роботов. Сейчас ищут 1711 программистов ...

Прошу помощи. Объединенные запросы

Тема в разделе "PHP для новичков", создана пользователем Ruslan, 20 май 2011.

  1. Ruslan

    Ruslan Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    13
    Симпатии:
    0
    Ситуация:
    Есть 4 таблицы - table1, table2, table3, table4. в таблицах одинаковые столбцы - id, name, text, ok.

    как получить из всех таблиц одним запросом количество строк, в которых значение "ok=1" ?
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    вложенные запросы использовать можно?
     
  3. Ruslan

    Ruslan Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    13
    Симпатии:
    0
    читал про JOIN LEFT, но ничего не понял.
    думаю можно, главное, чтобы нагрузки не было на сервер.
    моим способом получается много запросов (если из каждой таблицы находить результат и все потом складывать)
     
  4. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    [sql]select count(*) from (
    select * from table1 where `ok`=1
    union all
    select * from table2 where `ok`=1
    union all
    select * from table3 where `ok`=1
    union all
    select * from table3 where `ok`=1
    )[/sql]

    как-то так, кажется.
     
  5. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    [sql]"SELECT count(t1.id) as t1c,
    count(t2.id) as t2c,
    count(t3.id) as t3c,
    count(t4.id) as t4c,
    FROM table1 t1, table2. t2, table3 t3, table4 t4
    WHERE `ok` = 1"[/sql]
     
  6. Ruslan

    Ruslan Активный пользователь

    С нами с:
    15 июл 2009
    Сообщения:
    13
    Симпатии:
    0
    Спасибо, сейчас попробую. *)