Добрый день. Подскажите, пожалуйста, как можно создать SQL запросы с JOIN и без JOIN. Нужно вывести все записи из QUESTIONS, при условии (question_status = "approved") и если (question_user_id_from НЕ РАВНО NULL AND question_user_id_from = user_id) или (question_user_id_from РАВНО NULL AND question_user_id_from = user_id)
-------------------------------------------
QUESTIONS
-------------------------------------------
| question_status | question_user_id_from |
-------------------------------------------
| approved | 111111 |
-------------------------------------------
| approved | 111111 |
-------------------------------------------
| approved | NULL |
-------------------------------------------
-------------
USERS
-------------
| user_id |
-------------
| 111111 |
-------------
Сделал подобный запрос, как описал в условии, начало выводить по 8 одинаковых результатов у кого question_user_id_from = NULL, при этом у кого question_user_id_from != NULL - вывело все записи. Вопрос, в том как сделать так чтобы выбирало в одному условии и в другом условии, при этом выводил и те и другие результаты.
UPDATE: Остановился на этом запросе, но он выводит очень много раз информацию где question_user_id_from = NULL (а надо выводить по одной записи), в зависимости от количества строк в таблице USERS.
(SELECT * FROM questions,users WHERE questions.question_status = "approved" AND questions.question_user_id_from IS NULL) UNION (SELECT * FROM questions,users WHERE questions.question_status = "approved" AND questions.question_user_id_from = users.user_id)
Допустим есть два таблицы. table1 и table2.
Как соиденить таблицы без join
select * from table1, table2 // Просто соиденить без условий
select * from table1, table2 where table2.parent_id = table1.id
// Соиденить при входжении одной таблицы в другую
Как соиденить таблицы используя join
select * from table1
/*left right inner*/ join table2 on table2.parent_id = table1.id
select * from table1 cross join table2
Как соиденить используя union
select id from table1 /*where условие 1*/
union select parent_id from table2 /*where условие 2*/
если table1 = table2 то можно переписать это в один select так
select * from table1 where (/*условие1*/ id = 1) or (/*условие2*/ id = 2)
Вопрос сам решил. Для моих требований достаточно применить LEFT JOIN.
SELECT * FROM questions LEFT JOIN users ON (questions.question_user_id_from = users.user_id) WHERE questions.question_status = "approved"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Что должно быть: 1Js отправляет на php сервер информацию из переменной $login 2
Есть рандом который видает цифры 0 или 1Нужно между 0 и 1 добавлять блок Angle_Left, а между 1 и 0 Angle_Top как сделать?
В общем суть заключается в создании небольшого приложения, которое подключается к сайту посредством кук и отправляет запросыПо мимо этого...
Проблема такая: после изменения размера формы и добавления пары элементов при запуске программы форма отображается меньше, чем нужноСвойство...