Выбрать из MySQL, соединив два столбца вместе?

Чтобы дать вам представление о том, чего я пытаюсь достичь, я настроил очень простую почтовую систему, в которой пользователи могут «отмечать» входящую или исходящую почту (чтобы прочитать позже или сохранить и т. Д.). Система ОЧЕНЬ проста и работает с дизайном таблицы, аналогичным приведенному ниже, обратите внимание, что я удалил некоторые столбцы, которые здесь не актуальны:

Random Digit
User ID of Recipient
User ID of Sender
Message
If recipient has starred message (0 for no, 1 for yes)
If sender has starred the message (0 for no, 1 for yes)

mail_id  |  recip_account  |  sender_account  |  message  |  recip_starred  |  sender_starred
1            5                 10             Hello          0                  1
2            10                 5            A Reply         0                  1
3            10                20             Test           1                  0
4            15                20             Message        1                  1

Из приведенных выше примеров, если мы получаем помеченные сообщения для идентификатора пользователя 10запрос будет показывать идентификаторы сообщений 1, 3,
Как вы можете, вероятно, сработать — я могу легко получить помеченные сообщения, если просматривать только полученные или отправленные сообщения отдельно. Хотя проблема здесь в том, что я хотел бы показать все «помеченные» сообщения в одной папке для каждого пользователя, и, очевидно, для этого необходимо определить, какой пользователь пометил сообщение, или подключив rece_account. & rece_starred ИЛИ sender_account & sender_starred и ссылка, что против идентификатора пользователя?

Может кто-нибудь помочь мне здесь, в настоящее время я получаю результаты следующим образом:

$sql2 = "SELECT * FROM `ap_mail_system` WHERE `recip_account` = '$user_id' OR `sender_account` = '$user_id' ORDER BY `sent_date` DESC LIMIT 0, 12";

0

Решение

Вам просто нужно немного логической логики в вашем WHERE пункт. Пытаться:

SELECT * FROM `ap_mail_system` WHERE (`recip_account` = '$user_id' AND `recip_starred` = 1) OR (`sender_account` = '$user_id' AND `sender_starred` = 1) ORDER BY `sent_date` DESC LIMIT 0, 12
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]