Mysql join: поиск по двум таблицам

0

У меня две таблицы

1)Users table (id,name);
1)Deals table (id,user_id(FK users),title,keyword);

Когда пользователь дает ключевое слово

Я хотел бы, чтобы все сделки из таблицы сделок, что соответствует title и keyword вместе со всеми сделками пользователей, чтобы соответствовать ключевому словам name.

Можно ли достичь этого в рамках одного запроса, я с ним смущаюсь или мне нужно запустить два запроса

т.е.

1) Получите все сделки по этому ключевому слову и заголовку из таблицы сделок.

2) Получите все сделки пользователей, совпадающие с ключевым словом в name из таблицы пользователя (возможно, запрос соединения).

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

Теги:
join
left-join

1 ответ

0

Это объединяет обе таблицы и возвращает строки, соответствующие всем 3 условиям.

SELECT d.id, d.title, d.keyword, u.name,
FROM Deals d
JOIN Users u ON u.id = d.user_id
WHERE (d.title = 'some title' AND d.keyword = 'some keyword')
OR u.name = 'some name'

Если вам не нужны/нужны точные соответствия, LIKE может использоваться вместо, например

WHERE d.title LIKE '%some title%' 
  • 0
    Но он возвращает пустой результат, если ключевые слова не совпадают в таблице предложений, но запись найдена в пользовательской таблице.
  • 0
    Итак , вы хотите условие OR , чем это означает либо 1) или 2) должны соответствовать?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню