Сначала давайте начнем с того, что избавимся от этого соединения в старом стиле, чтобы разделить соединение и разделы четко разделяли, чтобы облегчить понимание.
SELECT * FROM table1 t1.
JOIN table2 t2
ON t1.user_id = t2.id
WHERE t1.content = news
AND t1.content_id = 1
Теперь давайте обсудим, в чем может быть проблема. Во-первых, какую ошибку вы получаете, поскольку это может быть совершенно приемлемый синтаксис? Может быть проблема в том, что вы не заметили, из каких столовых новостей придут? Если это в обеих таблицах, вы можете получить ошибку там. Если новостью является значение столбца, вы бы хотели, чтобы это были «новости», а не новости. Также может быть так, что никакие записи не соответствуют вашим условиям.
Кроме того, использование select * является плохой практикой, и его никогда не следует использовать в объединении, поскольку вы возвращаете хотя бы одно поле дважды, что приводит к расточительству как базы данных, так и сетевых ресурсов. Всегда указывайте только те столбцы, которые вам нужны. Это тратит много ресурсов каждый день, когда ленивые программисты делают это в каждом запросе.