Я рассмотрел объединение нескольких операторов sql как одно, но не могу заставить его работать.Объедините два оператора SQL как один оператор
У меня в основном есть два утверждения, которые я хотел бы объединить как одно утверждение, которое будет запрошено.
Вот два заявления:
$sql="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id
FROM (#__users AS u INNER JOIN #__uddeim AS um ON u.id=um.fromid)
WHERE um.toid=".(int)$myself." AND um.totrash=0 AND `um`.`delayed`=0".$filter.
$sql2="SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id
FROM (#__users AS u INNER JOIN #__uddeim AS um ON u.id=um.toid)
WHERE um.fromid=".(int)$myself." AND um.totrashoutbox=0".$filter." AND um.systemflag=0"
А вот моя попытка объединить их с помощью двух псевдонимов «U» и «о»:
$filter="";
if ($filter_user) $filter = " AND um.fromid=".(int)$filter_user;
if ($filter_user==-1) $filter = " AND um.fromid=0";
if ($filter_unread) $filter .= " AND um.toread=0";
if ($filter_flagged) $filter .= " AND um.flagged<>0";
$sql= "SELECT DISTINCT u.".($config->realnames ? "name" : "username")." AS displayname, u.id, o.".($config->realnames ? "name" : "username")." AS displayname, o.id
FROM (#__users AS u INNER JOIN #__uddeim AS um ON u.id=um.fromid) INNER JOIN #__uddeim AS om ON o.id=om.toid
WHERE um.toid=".(int)$myself." AND um.totrash=0 AND `um`.`delayed`=0".$filter. " AND om.fromid=".(int)$myself." AND om.totrashoutbox=0".$filter." AND om.systemflag=0";
Но это идет вверх без каких-либо результатов, когда первые два заявления, индивидуально работают нормально.
Любая помощь приветствуется.
что '$ filter.' в конце запроса одного предполагается сделать.? – davogotland
это еще одна переменная, которая просто переносит набор условий, если фильтр установлен. –
Вы, вероятно, ищете 'UNION', чтобы объединить два набора результатов вместе. –