Выборка с условием отсутствия в другой таблице

187
14 марта 2017, 13:50

Есть две таблицы posts и reposts, известны переменная $idTape (например 15). Задача: Найти пост, которые не публиковался ранее.

 SELECT * FROM posts WHERE category = 'Тест' LIMIT 1

Но чтобы в таблице reposts не было записи где posts.id_post = reposts.id_post и reposts.id_tape = $idTape

Answer 1
SELECT posts.* 
FROM      posts 
LEFT JOIN reposts  
       ON posts.id_post = reposts.id_post 
      AND reposts.id_tape = $idTape
WHERE reposts.id_post IS NULL
  AND posts.category = 'Тест' 
LIMIT 1
Answer 2

Вечером я не работник, но по моему вот Ваше решение:

SELECT * FROM posts WHERE category = 'Тест' LIMIT 1 AND posts.id_post NOT IN (select id_post FROM reposts WHERE id_tape = $idTape)

У меня сейчас нет возможности проверить запрос, поэтому в нем возможны синтаксические ошибки, но в качестве стартовой точки надеюсь, что Вам это поможет

READ ALSO
в чем отличие Primary key по одному или нескольким полям?

в чем отличие Primary key по одному или нескольким полям?

В чем заключается разница в создании Primary key по одному полю или по нескольким полям? И на что это будет влиять? Спасибо!

311
libGDX sqlite чтение с БД

libGDX sqlite чтение с БД

Создал БД sqlite с помощью SQLiteStudio, как в libGDX считывать данные из таблицы?

360
Потоки Java и их закрытие

Потоки Java и их закрытие

Зачем нужно закрывать потоки? Читал статью о том как читать/записывать в файл и из него и увидел метод close(), который применялся к читающему,...

218
Как “увидеть” Java

Как “увидеть” Java

Практикуясь в программировании я вижу выполнение программы в Eclipse, на чем ещё можно тестировать Java? Уточню, при создании приложения на Android...

180