Сложный запрос к базе данных

  • Автор темы Автор темы Porks
  • Дата начала Дата начала

Porks

Новичок
Здравструйте!
имеется 2 таблицы, которые необходимо соединить друг с другом. в первой есть id (целочисленный идентификатор) и user_name(набор букв), во второй 3 поля: id_1(целочисленный идентификатор), id_2(целочисленный идентификатор), state(число 0 или 1). нужно вытащить из первой таблицы все поля, где id совпадает с id_1 и id_2 второй таблицы и state = 1
 
Тебе нужен обычный join.

Покажи как ты пробовал.
 
Dovg в условии не сказано что нужны также записи для которых условие не выполняется, т.е. дополняются несуществующие атрибуты NULL, так что обычный WHERE AND.
 
Ragazzo
Не вижу принципиально разницы между select from table1, table2 where ... and ... и select from table1 join table2 on () where ...
 
Dovg использование оператора не по назначению с целью получения результат не есть хорошо. Но да, в эксплейне многих запросов where на 2 таблицы через AND показывается как LEFT JOIN почему-то, что впринципе одно и то же по функционалу.
 
SELECT * FROM table_1 JOIN table_2 ON table_1.id = table_2.id_1 WHERE state = 1 AND table_2.id_2 = table_1.id ... что-то подобное должно получиться, только чтоб выборка была из обоих столбцов id_1 и id_2....
 
с 50-й попытки удалось написать рабочий запрос... выглядит примерно так SELECT * FROM table_1 join table_2 ON table_1.id = table_2.id_user_1 where state = 1 AND WHERE table_2.id_1 = table_1.id OR WHERE table_1.id_2 = table_1.id
 
Сверху