MySQL Multi-Table Join

Мне нужно изменить следующий оператор MySQL, чтобы включить информацию из третьей таблицы ... но я отстой при объединениях.

select
    ss.*,
    se.name as engine,
    ss.last_run_at + interval ss.refresh_frequency day as next_run_at,
    se.logo_name    
from 
    searches ss join search_engines se on ss.engine_id = se.id
where
    ss.user_id='.$user_id.'
group by ss.id
order by ss.project_id, ss.domain, ss.keywords

Мне также нужно включить получение projects.project_name путем сопоставления searches.project_id с projects.id.

Какие...? Если это ваш производственный код, вы подвергаетесь атаке с использованием SQL-инъекции.

Salamander2007 25.11.2008 05:27

Я думаю, что ответ Роберта Вагнера на ваш связанный с этим вопрос (насколько этот запрос MySQL уязвим для SQL-инъекции?) В значительной степени резюмирует мое намерение. Этот шаблон увеличивает вероятность внедрения SQL-кода, в то время как другой шаблон делает это невозможным.

Salamander2007 25.11.2008 07:42
Освоение архитектуры микросервисов с 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
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
3
2
4 366
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Проверьте SELECT Синтаксис и JOIN Синтаксис.

Но самый простой ответ - добавить еще одну инструкцию JOIN..ON.

select
        ss.*,
        se.name as engine,
        ss.last_run_at + interval ss.refresh_frequency day as next_run_at,
        se.logo_name,
        pr.project_name -- +
from 
        searches ss
        join search_engines se on ss.engine_id = se.id
        join projects pr on ss.project_id = pr.id -- +
where
        ss.user_id='.$user_id.'
group by ss.id
order by ss.project_id, ss.domain, ss.keywords

[РЕДАКТИРОВАТЬ] Я добавил комментарии -- +, чтобы отметить мои дополнения.

что это - + там делает?

Salamander2007 25.11.2008 05:29

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