Как узнать, отсутствуют ли данные в таблице, используя LEFT JOIN

Мне нужно объединить две таблицы, чтобы определить, отсутствуют ли 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. Я думаю, что моя ошибка связана с '=', но я не могу определить лучший способ выполнить этот запрос.

Пожалуйста, предоставьте образцы данных и желаемые результаты. Непонятно, что вы пытаетесь сделать. Почему бы просто не запросить вторую таблицу, если это то, о чем вы хотите знать?

Gordon Linoff 01.01.2019 00:04

В предложении where «WHERE table2.tbl2_vins» вы не указали столбец.

Tarreq 01.01.2019 00:04

Это имена таблиц table1 и table2 или имена баз данных?

Barmar 01.01.2019 00:06
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
3
35
2

Ответы 2

Обычно ответ на этот тип вопросов состоит в том, чтобы переместить условие в предложение 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; 

Другие способы - использовать «минус» и «не в (выбрать ...)».

Другие вопросы по теме