Мне удалось выбрать из таблицы, которая сохраняет мои последние сообщения
но мне нужно иметь двойное условие в выборе
вот мой код:
$sql_query = "SELECT b.*,u.username AS MY_Sender
FROM TABLE_users u,TABLE_blogs b
Where b.reciever = '0' AND u.user_id = b.sender
UNION
SELECT b.*,u.username AS MY_reciever
FROM TABLE_users u,TABLE_blogs b
Where b.reciever != '0' AND u.user_id = b.reciever
ORDER BY bid DESC
LIMIT 0,7 ";
но MY_reciever является нулевым и пустым
Неужели я ошибаюсь в использовании UNION для этой необходимости?!
SELECT b.*,u.username AS MY_Sender, NULL AS MY_reciever
FROM TABLE_users u,TABLE_blogs b
Where b.reciever = '0' AND u.user_id = b.sender
UNION
SELECT b.*, NULL AS MY_Sender, u.username AS MY_reciever
FROM TABLE_users u,TABLE_blogs b
Where b.reciever != '0' AND u.user_id = b.reciever
@Mac Taylor
Эй, конечно, ты меня понимаешь, сказал, что мне нужно еще одно условие, добавленное к этому утверждению, которое ты написал, AS My_Real_Sender.., поскольку вы, возможно, знаете это выражение, которое вы написали, прекрасно работает, чтобы найти Reciver (MY_Type), а не отправитель сообщения
Вы имеете в виду что-то вроде этого?
SELECT b.*,
u.username AS MY_Sender.
NULL as MY_Recipient,
'Sender' AS MyType
FROM TABLE_users u,
TABLE_blogs b
WHERE b.reciever = '0'
AND u.user_id = b.sender
UNION
SELECT b.*,
u1.username AS MY_Sender.
u2.username AS MY_Recipient.
'Recipient' AS MyType
FROM TABLE_users u1,
TABLE_users u2,
TABLE_blogs b
WHERE b.reciever != '0'
AND u1.user_id = b.reciever
AND u2.user_id = b.sender
ORDER BY bid DESC
LIMIT 0,7
Столбцы по частям союза должны иметь одно и то же имя. Попробуйте:
SELECT b.*,
u.username AS MY_User
FROM TABLE_users u,
TABLE_blogs b
WHERE b.reciever = '0'
AND u.user_id = b.sender
UNION
SELECT b.*,
u.username AS MY_User
FROM TABLE_users u,
TABLE_blogs b
WHERE b.reciever != '0'
AND u.user_id = b.reciever
ORDER BY bid DESC
LIMIT 0,7
Если вам нужно отличить, какая часть UNION была возвращена, верните дополнительный столбец:
SELECT b.*,
u.username AS MY_User.
'Sender' AS MyType
FROM TABLE_users u,
TABLE_blogs b
WHERE b.reciever = '0'
AND u.user_id = b.sender
UNION
SELECT b.*,
u.username AS MY_User.
'Recipient' AS MyType
FROM TABLE_users u,
TABLE_blogs b
WHERE b.reciever != '0'
AND u.user_id = b.reciever
ORDER BY bid DESC
LIMIT 0,7