Как при запросе к двум таблицам назначить для каждой свой WHERE?

Здравствуйте. Пытаюсь объединить два запроса к БД.

Задача, чтоб из comments выводилось когда comments.post LIKE '$docid' , а из dell когда dell.adm LIKE '$adm'.
$sql = " SELECT  dell.ban, dell.adm, comments.post, comments.id, comments.parent_id, comments.name, comments.comment, comments.head
FROM dell, comments WHERE dell.adm LIKE '$adm' /* как их написать вместе? */ comments.post LIKE '$docid' ORDER BY comments.id DESC	";

Помогите. Что-то примеров в Сети я не нашел. Это вообще возможно? Спасибо.
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
svd71
@svd71
Если я правильно понял, то вам выдать часть записей из таблицы comments со своим условием и к полученным записям добавить записи из dell со своим условием. При этом обе таблицы не имеют общих ключей друг на други и какую то общюю таблицу(!?). Без такого условия вы получите кортезиан: каждая запись их comments будет повторяться столько раз, сколько существут записей в dell.

Если же Вам требуются всетаки такие отдельные куски из этих таблиц, то можно воспользоваться объединением. Но фокус в том, что отсуствующие столбцы из двуж таблиц нужно симулировать:
Select
comments.post, comments.id, comments.parent_id, comments.name, 
Cast(0 as integer) as ban, cast('' as varchar(200) as adm
from comments where comments.post LIKE '$docid'

UNION

select cast('' as varchar(250)), 0 , 0, '', ban, adm from dell where dell.adm LIKE '$adm'
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Советую вам не писать запрос в 2 таблицы через запятую. При этом делается хз какой Join и читабельность падает до нуля. Рекомендую переписать явным Join'ом с явным указанием по каким полям и условиям. А внутри Where уже писать все необходимые вам условия
Ответ написан
Writerim
@Writerim
Заполнить позже...
SELECT * FROM `test`,`test2` WHERE `test`.`id` = 15 AND `test2`.`id` = 150
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы