Вопрос по mysql, join, inner-join, left-join – MySQL запрос соединения / внутреннее соединение

4

у меня есть две таблицы в моем MySQL, я хочу извлечь результаты на основе комбинированного запроса для обеих таблиц. я пытался присоединиться, а также внутреннее соединение, но безуспешно структура

таблица А является

<code>id   userid   topic

1     34       love
3     64       friendship
35    574      romance
32    253      games
95    633      football
54    26       cricket
648    63      music
</code>

таблица B является

<code>id    location     username
34      Australia    krkrff
64      india        dieiei
574     pakistan     frkfrf
253     japan        frfffrk
633     india        ifirf
26      Australia    riiri
63      Australia    frffjrr
</code>

Обратите внимание, что в идентификаторе пользователя tableA и в идентификаторе TableB идентично. Оба отражают данные тех же пользователей. Я хочу отобразить данные tableA, отфильтровав столбец местоположения из tableB. предположим, что я хочу отобразить тему таблицы B, а пользователи принадлежат Австралии, тогда она должна дать вывод: love крикет Музыка

Вы можете видеть в таблице B, что 34,26 & amp; 63 принадлежит Австралии, поэтому результат такой. если местоположение в Индии, то выход будет

дружба и футбол. расскажите, пожалуйста, как написать sql запрос.

Ваш Ответ

4   ответа
1

Не могли бы вы пояснить, что вы имеете в виду под "идентификатором таблицы A", а в таблице "идентификатор" является одним и тем же ", поскольку они видны по-разному, поэтому мы не можем использовать их в качестве ключей.

Однако, насколько я понимаю, вы, скорее всего, захотите выполнить JOIN, а затем SELECT только для ТЕМЫ.

Итак, ваш запрос должен быть:

SELECT t1.topic from table1 t1 JOIN tableB t2 on t2.id = t1.id WHERE t2.location = 'Australia'
имя столбца отличается для идентификатора пользователя в tableA и id в tableB, но значения одинаковы. просто проверьте, что значения идентификатора пользователя tableA отображаются в столбце идентификатора tableB, чтобы их можно было использовать в качестве ключа Steeve
1
SELECT a.topic, b.topic FROM tableA a, tableB b WHERE a.id = b.id AND b.location = 'Australia'
1

Попробуй это:

SELECT tableA.topic FROM tableA JOIN tableB
ON tableA.userid = tableB.id
WHERE tableB.location = 'Australia';
8

Следующее должно выбрать то, что вы описываете:

select a.topic
from tableA a
join tableB b on b.id = a.userid
where b.location = 'Australia' -- or whichever location you filter on

что эквивалентно:

select a.topic
from tableA a
join tableB b on b.id = a.userid and b.location = 'Australia'
работал как шарм Steeve
@Paul Bellora, Сколько объединений можно использовать в одном запросе MySQL?

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