Mysql - Как выбрать запись из таблицы, не имеющей отношения - PullRequest
0 голосов
/ 06 августа 2020

Можно ли получить запись из не связанной таблицы?
В этом случае у меня есть две записи в таблице рейтинга.

Я хочу получить данные из idBengkel в таблице рейтинга, затем добавьте их в столбец idBengkel_2 в таблице bengkel_similarity.

Примечание: столбец idUser, в котором указано количество записей. Итак, номер записи должен совпадать во всей таблице. И idUser отличается от idBengkel_1.

Вот мои таблицы:

bengkel_similarity

SELECT idBengkel_1, idBengkel_2, nilaiSimilarity
FROM bengkel_similarity
WHERE idBengkel_1 = 1 AND idBengkel_2 = 7
OR idBengkel_1 = 1 AND idBengkel_2 = 10

рейтинг

SELECT idUser, idBengkel, nilai
FROM rating
WHERE idUser = 1

Вот результат из всей таблицы:

Результат bengkel_similarity

+-------------+-------------+-----------------+
| idBengkel_1 | idBengkel_2 | nilaiSimilarity |
+-------------+-------------+-----------------+
|           1 |           7 | -0.1692         |
|           1 |          10 | 0               |
+-------------+-------------+-----------------+

Результат рейтинга

+--------+-----------+-------+
| idUser | idBengkel | nilai |
+--------+-----------+-------+
|      1 |         7 |     4 |
|      1 |        10 |     5 |
+--------+-----------+-------+

Вот что я хочу:

+--------+-------------+-------------+-------+-----------------+
| idUser | idBengkel_1 | idBengkel_2 | nilai | nilaiSimilarity |
+--------+-------------+-------------+-------+-----------------+
|      1 |           1 |            7|      4|         -0.1692 |
|      1 |           1 |           10|      5|               0 |
+--------+-------------+-------------+-------+-----------------+

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Я не знаю, почему вы квалифицируете это как «нереляционное». Исходя из ваших данных и желаемых результатов, я думаю, вам просто нужен join:

SELECT 
    bs.idBengkel_1, 
    bs.idBengkel_2, 
    r.nilai
    bs.nilaiSimilarity,
FROM bengkel_similarity bs
INNER JOIN rating r 
    ON  r.idUser    = bs.idBengkel_1
    AND r.idBengkel = bs.idBengkel_2
WHERE bs.idBengkel_1 = 1 AND bs.idBengkel_2 IN (7, 10)
0 голосов
/ 06 августа 2020

Когда я понял, вы правы:

select * from bengkel_similarity , rating where idBengkel = idBengkel_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...