SQL помогает сделать конкретный оператор выбора для таблицы - PullRequest
0 голосов
/ 31 мая 2019
CREATE TABLE person (
  id INTEGER PRIMARY KEY,
  first_name TEXT,
  last_name TEXT,
  age INTEGER
);

INSERT INTO person VALUES (0, 'Pat', 'Johnson', 25);
INSERT INTO person VALUES (1, 'John', 'Wells', 28);

Итак, у меня есть таблица с именем person, и я пытаюсь опросить всех людей моложе Pat Johnson, но я не хочу запрашивать ее с помощью жесткого кодирования.

SELECT first_name, last_name FROM person WHERE age < 25;

^^^ это пример того, что я не хочу делать.

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Вы можете попробовать использовать подзапрос

SELECT first_name, last_name FROM person 
WHERE age<(select age from person where first_name='Pat' and last_name='Johnson')
0 голосов
/ 31 мая 2019

Мы можем попробовать подход против объединения:

SELECT t1.first_name, t1.last_name
FROM yourTable t1
LEFT JOIN yourTable t2
    ON t1.age > t2.age AND
       t2.first_name = 'Pat' AND
       t2.last_name = 'Johnson'
WHERE
    t2.first_name IS NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...