customer\u代码不是明确的吗?

xienkqul  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(364)

我是一个初学者,我正在寻找一个多小时的解决方案,我没有时间浪费这个周末。
所以我想有日期,目的地和名字,其中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 */;
8ehkhllq

8ehkhllq1#

你的代码有问题。
为表使用别名。
使用 JOIN 而不是 , 逗号( CROSS JOIN )这是一种古老的风格, JOIN 可以让我们知道每个表的关系。
sql语句确保清楚地标记数据表的哪一列
你可以试试这个。

select k.naam, r.bestemming 
from klant k 
INNER JOIN reis r on k.klant_code = r.reis_code
z4bn682m

z4bn682m2#

两个表都有一列“klant\u code”。
您必须在where子句中明确定义它,即klant.klant\u代码或bestselling.klant\u代码。
我想你要找的是“on”而不是“where”。

blmhpbnm

blmhpbnm3#

你可以试试这个 Inner Join 使用别名。

select k.naam, r.bestemming from klant k 
INNER JOIN
reis r on 
k.klant_code = r.reis_code

相关问题