Я пытаюсь получить результат для запроса:
SELECT product, exportcountry
FROM is_exported_to CROSS JOIN is_produced_in
WHERE product = cheese AND origin = 'France';
Но я не могу получить никакого возврата.
Две таблицы были созданы следующим образом:
CREATE TABLE is_produced_in(
cheese VARCHAR(32),
origin VARCHAR(32)
);
INSERT INTO is_produced_in (cheese, origin)
VALUES
('Brie', 'France'),
('Chrur', 'Tibet'),
('Halloumi', 'Greece'),
('Orgu', 'Turkey'),
('Salers', 'France'),
('Serrano', 'Brazil')
CREATE TABLE is_exported_to(
product VARCHAR(32),
exportcountry VARCHAR(32)
);
INSERT INTO is_exported_to (product, exportcountry)
VALUES
('Brie', 'Greece'),
('Halloumi', 'Brazil'),
('Halloumi', 'France'),
('Halloumi', 'Tibet'),
('Orgu', 'France'),
('Orgu', 'Tibet'),
('Salers', 'Greece'),
('Serrano', 'Tibet'),
('Serrano', 'Turkey')
Вы пропустили ";" в вашем скрипте инициализации.
CREATE TABLE is_produced_in(
cheese VARCHAR(32),
origin VARCHAR(32)
);
INSERT INTO is_produced_in (cheese, origin)
VALUES
('Brie', 'France'),
('Chrur', 'Tibet'),
('Halloumi', 'Greece'),
('Orgu', 'Turkey'),
('Salers', 'France'),
('Serrano', 'Brazil');
CREATE TABLE is_exported_to(
product VARCHAR(32),
exportcountry VARCHAR(32)
);
INSERT INTO is_exported_to (product, exportcountry)
VALUES
('Brie', 'Greece'),
('Halloumi', 'Brazil'),
('Halloumi', 'France'),
('Halloumi', 'Tibet'),
('Orgu', 'France'),
('Orgu', 'Tibet'),
('Salers', 'Greece'),
('Serrano', 'Tibet'),
('Serrano', 'Turkey');
Запрос sql может быть:
SELECT product, exportcountry
FROM is_exported_to CROSS JOIN is_produced_in
ON product = cheese AND origin = 'France';
Используйте «ВКЛ» вместо «ГДЕ»
В перекрестном соединении нет необходимости указывать условие соединения. Вы можете использовать следующий запрос:
SELECT * from is_exported_to
CROSS JOIN is_produced_in
WHERE origin='France'
Спасибо за вклад, надеюсь, я привыкну к альтернативным методам для разных ситуаций. Это очень ценится, правда.