我是一个初学者,我正在寻找一个多小时的解决方案,我没有时间浪费这个周末。
所以我想有日期,目的地和名字,其中klant\u code=reis\u code,但我得到的错误显示在我的标题。如果我使用
select klant.naam, reis.bestemming from klant,reis where klant_code = reis_code
它的工作,我不明白的是,它得到的错误,只有当我想添加日期的klant(客户端)。我做错什么了?
谢谢你的时间和帮助!这是我的sql代码:
CREATE TABLE `bestelling` (
`bestelling_code` int(11) NOT NULL,
`klant_code` int(11) NOT NULL,
`reis_code` int(11) NOT NULL,
`datum` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `bestelling`
--
INSERT INTO `bestelling` (`bestelling_code`, `klant_code`, `reis_code`, `datum`) VALUES
(1, 1, 1, '2017-12-12'),
(2, 5, 3, '2018-01-01'),
(3, 2, 5, '2018-03-05'),
(4, 4, 2, '2018-08-08'),
(5, 3, 4, '2018-12-10');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `klant`
--
CREATE TABLE `klant` (
`klant_code` int(11) NOT NULL,
`naam` varchar(20) NOT NULL,
`adres` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `klant`
--
INSERT INTO `klant` (`klant_code`, `naam`, `adres`) VALUES
(1, 'Gester', 'Amsterdam'),
(2, 'Piet', 'Breda'),
(3, 'Klaas', 'Rotterdam'),
(4, 'Henk', 'Etten-leur'),
(5, 'Sjaak', 'Tilburg');
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `reis`
--
CREATE TABLE `reis` (
`reis_code` int(12) NOT NULL,
`bestemming` varchar(12) NOT NULL,
`klasse` int(11) NOT NULL,
`prijs_in_euro` int(11) NOT NULL,
`geannuleerd` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Gegevens worden geëxporteerd voor tabel `reis`
--
INSERT INTO `reis` (`reis_code`, `bestemming`, `klasse`, `prijs_in_euro`, `geannuleerd`) VALUES
(1, 'Spanje', 1, 500, 1),
(2, 'Duitsland', 2, 300, 0),
(3, 'Griekenland', 2, 700, 1),
(4, 'Italie', 1, 640, 0),
(5, 'Belgie', 2, 80, 1);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
3条答案
按热度按时间8ehkhllq1#
你的代码有问题。
为表使用别名。
使用
JOIN
而不是,
逗号(CROSS JOIN
)这是一种古老的风格,JOIN
可以让我们知道每个表的关系。sql语句确保清楚地标记数据表的哪一列
你可以试试这个。
z4bn682m2#
两个表都有一列“klant\u code”。
您必须在where子句中明确定义它,即klant.klant\u代码或bestselling.klant\u代码。
我想你要找的是“on”而不是“where”。
blmhpbnm3#
你可以试试这个
Inner Join
使用别名。