SQL И без требования

У меня на сайте есть таблица со списком проектов. Приведенный ниже оператор SQL извлекает каждый проект и преобразует столбцы ### _ id в имя ### _ в другой таблице. Все идет нормально.

У меня проблема в том, что для этого необходимо заполнить все поля в строке в таблице проектов. Если, например, в строке проекта нет значения для proj_industry_id, то проект здесь вообще не будет отображаться.

Я попытался удалить «И» для каждого совпадения в операторе WHERE и разделить их запятыми, но возникла ошибка.

Я также проверил документы SQL и, похоже, не могу найти там ответ.

Любые идеи о том, как я могу заставить мое утверждение по-прежнему соответствовать идентификатору с именем, когда оно у меня есть, но все же показывать запись, когда у меня нет?

Спасибо!

$sql = "SELECT
    projects.*,
    engagement_types.eng_type_name AS eng_type,
    users.user_full_name AS username,
    industries.industry_name AS industry_name,
    categories.category_name AS category_name,
    geographies.geo_name AS geo_name,
    status.status_name AS status_name
FROM
    projects,
    engagement_types,
    users,
    industries,
    categories,
    geographies,
    status
WHERE
    projects.proj_eng_type_id = engagement_types.id
    AND projects.proj_lead_id = users.id
    AND projects.proj_industry_id = industries.id
    AND projects.proj_category_id = categories.id
    AND projects.proj_geo_id = geographies.id
    AND projects.proj_status_id = status.id
    AND projects.proj_geo_id = '$selected_geo_id'";

*****РЕДАКТИРОВАТЬ******

Вот окончательный правильный код из решения ниже с использованием нескольких левых соединений!

SELECT
    projects.*,
    engagement_types.eng_type_name AS eng_type,
    users.user_full_name AS username,
    industries.industry_name AS industry_name,
    categories.category_name AS category_name,
    geographies.geo_name AS geo_name,
    status.status_name AS status_name
FROM 
    projects
LEFT JOIN engagement_types ON projects.proj_eng_type_id = engagement_types.id
LEFT JOIN users ON projects.proj_lead_id = users.id
LEFT JOIN industries ON projects.proj_industry_id = industries.id
LEFT JOIN categories ON projects.proj_category_id = categories.id
LEFT JOIN geographies ON projects.proj_geo_id = geographies.id
LEFT JOIN status ON projects.proj_status_id = status.id
GROUP BY
    proj_start_date 
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

похоже, вам нужно посмотреть на "LEFT JOIN" https://www.w3schools.com/sql/sql_join_left.asp В противном случае вы пропустите левую часть зеленого круга.

Успешно справился. БЛАГОДАРЮ ВАС!

Topher 25.06.2018 22:00

Другие вопросы по теме

Похожие вопросы

Я получил данные из базы данных MySQL с помощью python, но имена атрибутов не отображаются. Как я могу отображать данные в формате словаря Python?
Хранимая процедура Java Hibernate C3P0 с именем «ошибка запроса» - операции не разрешены после закрытия оператора, невозможно освободить соединение JDBC
Как выполнить строгую процедуру в весенней загрузке, которая не возвращает набор результатов?
Запрос на соединение двух таблиц, чтобы получить "имена" на основе "идентификаторов"
Вычисление со значениями из двух разных таблиц mysql
Подключение Spring Boot к MySQL на удаленном SSH-сервере
Удаление записей через PHP без перезагрузки страницы (с использованием AJAX)
MYSQL вставляет / обновляет медленно после обновления схемы и загрузки через источник
MySql - как автоматически неявно обрезать все поля в выбранных запросах
Запрос MYsql для отображения продуктов с количеством 0 внизу