MYSQL — получение значения из поля в справочной таблице и основной таблице в одном запросе

У меня есть 2 таблицы, которые я опишу ниже:

1) Основная таблица, которая имеет автоинкремент по U_ID и имеет столбец с именем RU_ID, который ссылается на идентификатор таблицы поиска.

2) Таблица поиска автоматически увеличивается на RU_ID и имеет столбец с именем ROLE который имеет жало значение.

Теперь мне нужно SELECT утверждение, которое показывает мне все значения основной таблицы (SELECT * FROM …) и ROLE значение справочной таблицы.

У меня есть это до сих пор:
Обратите внимание, что = 2 является статическим только для этого примера, это будет переменная, которая содержит номер RU_ID. Также этот пример будет использоваться в PHP — PDO, но SQL-запрос действительно является общим.

    SELECT *
FROM tbl_users as u
WHERE u.RU_ID = 2
AND STATUS = 1
AND u.RU_ID IN
(SELECT ROLE
FROM tbl_role_users, tbl_users
WHERE RU_ID = 2)";

Спасибо, что изучили это со мной.

1

Решение

Вы пытались присоединиться?

SELECT t.*, t1.role
FROM tbl_users t
JOIN tbl_role_users t1 ON t.RU_ID = t1.RU_ID -- # --or t1.ID whichever is referenced
WHERE t1.RU_ID = 2
AND t.status = 1;

если вы хотите присоединиться к таблице без фильтрации лишних строк, просто добавьте LEFT перед JOIN

Замечания:

Я бы порекомендовал вам отказаться от способа объединения таблиц, предшествующего ANSI, и фактически использовать синтаксис JOIN, поскольку его проще читать в сложных запросах, или же вы можете иметь больше функциональных возможностей с помощью синтаксиса JOIN … и таким образом вам не нужен IN ( ) заявление

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]