gpt4 book ai didi

mysql - customer_id '在where子句中不是明确的?

转载 作者:行者123 更新时间:2023-11-29 10:04:21 36 4
gpt4 key购买 nike

我是初学者,我花了一个多小时寻找解决方案,我没有时间浪费这个周末。

所以我想要获得 klant_code = reis_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 */;

最佳答案

您的代码存在一些问题。

  1. 使用表的别名。
  2. 使用JOIN代替,逗号(CROSS JOIN)这是一种旧的风格,JOIN可以让我们了解各个表的关系。
  3. SQL语句确保数据表的哪一列被明确标记

你可以试试这个。

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

关于mysql - customer_id '在where子句中不是明确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52237896/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com