Мне нужно объединить две таблицы, чтобы определить, отсутствуют ли VIN в конкретной таблице.
Я работаю с LEFT JOIN. К сожалению, я могу извлечь только те данные, которые есть в обеих таблицах.
SELECT vin
FROM table1.vins
LEFT JOIN table2.tbl2_vins
ON table2.tbl2_vins.vin = table1.vins.vin
WHERE table2.tbl2_vins = ( "5yfbprhe2jp757613" );
Я пытаюсь выяснить, как проверить конкретные VIN, которые находятся в столбце table2 vin, но не в столбце vin table1. Я думаю, что моя ошибка связана с '=', но я не могу определить лучший способ выполнить этот запрос.
В предложении where «WHERE table2.tbl2_vins» вы не указали столбец.
Это имена таблиц table1 и table2 или имена баз данных?






Обычно ответ на этот тип вопросов состоит в том, чтобы переместить условие в предложение on.
Однако все ваши столбцы выглядят одинаково. Это может делать то, что вы хотите:
SELECT t1.vin, (t2.vin is not null) as present_in_t2
FROM table1.vins t1 LEFT JOIN
table2.tbl2_vins t2
ON t2.vin = t1.vin
WHERE t1.vin IN ( '5yfbprhe2jp757613' );
I am trying to figure out how to check specific VINs that are in the table2 vin column, but not in the table1 vin column.
Если это то, что вам нужно, просто используйте not exists:
SELECT t2.vin
FROM table2.tbl2_vins t2
WHERE NOT EXISTS (SELECT 1
FROM table1.vins t1
WHERE t2.vin = t1.vin
) AND
t2.vin IN ( '5yfbprhe2jp757613' );
SELECT vin
FROM table2.vins
LEFT JOIN table1.tbl1_vins
ON table2.tbl2_vins.vin = table1.vins.vin
WHERE table1.tbl1_vins = is null;
Другие способы - использовать «минус» и «не в (выбрать ...)».
Пожалуйста, предоставьте образцы данных и желаемые результаты. Непонятно, что вы пытаетесь сделать. Почему бы просто не запросить вторую таблицу, если это то, о чем вы хотите знать?