2013-12-25 2 views
0

Я пытаюсь выбрать строки в таблице, которые соответствуют друг другу. Я имею такую ​​структуруКак выбрать упорядочивание строк по порядку?

SQL Screen

И я хотел бы, чтобы выбрать все строки, в которых 32 и 33 имеют соответствующие.

Этот сценарий

SELECT * FROM MY_TABLE 
WHERE sender = '$this' AND receiver = '$friend'; 

только ловит одну сторону этих строк.

+0

Я присоединиться к таблице? – nilobarp

+0

SELECT * FROM my_table; – Strawberry

+0

или, возможно, ваш набор данных не очень репрезентативен – Strawberry

ответ

3

Я сделал систему запрос друга на моем сайте, и это работает отлично.

Попробуйте это:

SELECT * FROM MY_TABLE WHERE (sender = '$this' AND receiver = '$friend') OR (sender = '$friend' AND receiver = '$this'); 
0
SELECT * FROM MY_TABLE t1 
JOIN MY_TABLE t2 
ON t1.id<>t2.id AND t1.sender=t2.receiver 
0
SELECT * FROM MY_TABLE t1 INNER JOIN MY_TABLE t2 ON t1.sender = t2.receiver 
0

Это один выбирает все строки, в которых отправитель = 32 (если $ это = 32) и приемник 33 (если $ = 33 друг), ничего другого.

Если вам нужно 32 и 33 для обоих этих перевалы, вы должны использовать или как этот

SELECT * FROM MY_TABLE 
WHERE sender = '$this' OR sender = '$friend' || receiver = '$friend' OR receiver = '$this'; 
Смежные вопросы