这是命令:
SELECT DISTINCT T.TRIP_ID, T.TRIP_NAME, T.STATE, T.TYPE, S.TRIP_ID, S.TRIP_NAME
FROM TRIP T, TRIP S
WHERE T.STATE = 'NH'
AND T.TYPE = 'Hiking'
AND T.TRIP_ID < S.TRIP_ID
ORDER BY T.TRIP_NAME;
我应该得到大约6个结果但不知何故我得到298个重复结果。这段代码有什么问题?
正确的结果(6个条目)
我的结果(前几个条目)总计298个条目
答案 0 :(得分:1)
DISTINCT关键字对其后面的所有选择列表项进行操作,而不仅仅是下一个立即列。因此,在您的情况下,当考虑所有列时,它是(或将会)删除重复项。您显示的结果在所有列中都是单独的。
答案 1 :(得分:1)
我不确定你为什么要在这个例子中进行自我加入。但是如果你想要新罕布什尔州不同的旅行名称涉及徒步旅行,请执行以下操作:
navigator.serviceWorker.addEventListener('message', (e) => {
console.log('msg recd in main script', e.data);
e.source.postMessage('sending back to sw');
});
return navigator.serviceWorker.register(
'sw.js'
).then((r) => {
// navigator.serviceWorker.ready.then((r) => { // This had been necessary at some point in my testing (with r.active.postMessage), but not working for me atm...
// Sending a subsequent message
const messageChannel = new MessageChannel();
messageChannel.port1.onmessage = (e) => {
if (e.data.error) {
console.log('err', e.data.error);
} else {
console.log('data', e.data);
}
};
navigator.serviceWorker.controller.postMessage('sending to sw', [messageChannel.port2]);
// });
});
答案 2 :(得分:0)
按照惯例,你有一个缺失的连接条件。