Нужна помощь с запросом mysql

Тема в разделе "Базы данных", создана пользователем Smile, 28 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    Добрый день, такая вот проблема, есть 2 таблицы ..... можно как то сделать чтоб 1 запросом прочитать обе таблицы...

    к примеру а1 - 1 таблица, а2 - вторая

    select * from a1,a2 where a1.news != a2.news ?

    будет работать такой запрос или нет в mysql ?
     
  2. maJic

    maJic Создатель

    Регистр.:
    8 сен 2008
    Сообщения:
    24
    Симпатии:
    9
  3. MadWizard

    MadWizard Постоялец

    Регистр.:
    24 мар 2009
    Сообщения:
    145
    Симпатии:
    20
    Работать будет, но вернет скорее всего не то, что ты ожидаешь...
    Сформулируй, что нужно в итоге получить или копай в сторону JOIN'ов
     
  4. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    нужно чтоб в итоге выводились все результаты из 1 таблицы... а 2 таблица нужна только для проверки... вот уже 2 день мучаюсь... никак не получается....

    Чтото вроде этого нужно...

    таблица a1 : id , s_id, text
    таблица a2 : id , status

    select * from a1 where [тут уже проверям если s_id из тыблицы a1 совпадает с id из тыблицы a2 и если статус у таблицы а2 = 1] ...

    select * from a1 where a1.s_id = a2.id AND a2.status = 1

    ( a1.s_id всегда тотже что и a2.id )

    хелп :(:thenks:
     
  5. KnowHow

    KnowHow Создатель

    Регистр.:
    3 апр 2010
    Сообщения:
    22
    Симпатии:
    5
    SELECT a1.* FROM a1, a2 WHERE a2.id = a1.s_id AND a2.status = 1
     
    Smile нравится это.
  6. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    Спасибо, помогло :yahoo::ay:
     
  7. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    не стал создавать новую тему, спрошу тут...

    запрос вроде этого:

    Код:
    SELECT a1.* FROM a1, a2 WHERE a2.id = a1.s_id AND a2.status = 1         
    будет считаться как 1 или как 2 зароса, также если обновить через 1 запрос 2 или 3 таблицы... нагрузка будет как от одного запроса или больше ?
     
  8. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    для примера прогнал план запросов на своей базе.


    SELECT a1.* FROM a1, a2 WHERE a2.n_id = a1.n_id AND a2.status = 1
    ------------------------------------------------------------
    Statement Id=0 Type=SELECT STATEMENT
    Cost=7286


    SELECT a1.* FROM a1 WHERE a1.n_id=1
    ------------------------------------------------------------
    Statement Id=0 Type=SELECT STATEMENT
    Cost=3


    SELECT a2.* FROM a2 WHERE a2.n_id=1
    ------------------------------------------------------------
    Statement Id=0 Type=SELECT STATEMENT
    Cost=3

    разница в скорости почти 1000 раз
     
  9. Smile

    Smile

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    diavolic , по скорости понел, а по нагрузки как ? лучше использовать 1 запрос или 2 ?
     
  10. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    так это зависит от того что именно и как именно ты выбрать хочешь. если тебе нужно построить связный список, то без запроса1 не обойдешься.
     
Статус темы:
Закрыта.