[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно составить сложный запрос?
Гость_Евгений
Здравствуйте! Помогите, пожалуйста, составить запрос к MySQL с двойным условием.

У меня в БД есть 2 таблицы:

--------------
| categories |
------------------------------
id | title | published |
------------------------------
1 | Test1 | 1 |
------------------------------
2 | Test2 | 0 |
------------------------------
3 | Test3 | 1 |
------------------------------
4 | Test4 | 0 |
------------------------------
5 | Test5 | 1 |
------------------------------

и

----------
| images |
------------------------------
id | catid | published |
------------------------------
1 | 1 | 1 |
------------------------------
2 | 5 | 0 |
------------------------------
3 | 2 | 1 |
------------------------------
4 | 4 | 0 |
------------------------------
5 | 3 | 1 |
------------------------------
6 | 4 | 0 |
------------------------------
7 | 3 | 1 |
------------------------------
8 | 2 | 0 |
------------------------------
9 | 5 | 1 |
------------------------------
10 | 1 | 0 |
------------------------------

Мне нужно:

ВЫБРАТЬ всё ИЗ images, ГДЕ published = 1 И catid != (НИКАКОМУ ИЗ всех id ИЗ categories ГДЕ published=0)

Сейчас запрос выглядит так:

SELECT * FROM images WHERE published=1

Как приплести к нему 2-ое необходимое мне условие?

Вроде бы всё выглядит просто, но сегодня до 3 ночи копался - так и не получилось ничего. Думал сделать 2 разных запроса к обоим таблицам:

SELECT id FROM categories WHERE published=0
$result=$db->loadResult();
SELECT * FROM images WHERE published=1 AND catid!=$result

Но каким образом я во 2-ом запросе смогу проверить условие чтобы catid!=
ведь в 1-ом запросе выдался массив, а не одно значение...



Спустя 21 минута, 58 секунд (14.11.2010 - 13:28) vagrand написал(а):

SELECT i.*, c.*
FROM images i
inner join categories c on c.id = i.catid and c.published = 1
WHERE i.published=1

Спустя 1 час, 9 минут, 2 секунды (14.11.2010 - 14:37) Guest написал(а):
vagrand, огромное спасибо!!! Теперь до меня хотя бы дошло, как сложные запросы к БД делать!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.