Найдите названия всех навыков, которыми обладает хотя бы один кандидат или необходимы хотя бы для одной должности. Не перечисляйте одинаковые имена много раз.
CREATE TABLE SPOSSESSED(
anumber DECIMAL(6) NOT NULL, /*applicant*/
sname VARCHAR(30) NOT NULL, /*skill name*/
slevel DECIMAL(2) NOT NULL);
CREATE TABLE SNEEDED(
pnumber DECIMAL(8) NOT NULL, /*position*/
sname VARCHAR(30) NOT NULL, /*skill name*/
slevel DECIMAL(2) NOT NULL);
Если это индивидуально для каждого стола, я вышел с
SELECT sname FROM SPOSSESSED GROUP BY sname HAVING COUNT(anumber) >= 1;
SELECT sname FROM SNEEDED GROUP BY sname HAVING COUNT (pnumber) >= 1;
Проблема, с которой я сталкиваюсь, заключается в объединении этих двух файлов WITHOUT JOIN/UNION. Есть метод, который я пробовал:
SELECT SPOSSESSED.sname FROM SPOSSESSED, SNEEDED
WHERE SPOSSESSED.sname = SNEEDED.sname
GROUP BY SPOSSESSED.sname
HAVING COUNT (pnumber) >= 1
OR COUNT (anumber) >= 1;
Однако результат не равен результатам отдельных операторов SELECT.
,
— это просто старомодный способ объединения, и вам никогда не следует его использовать. Во-вторых, вам понадобится соединение, объединение или аналогичная конструкция для объединения данных из нескольких таблиц. Так работает SQL. - person Gordon Linoff   schedule 06.05.2018