在MySQL中联接表数据重复

时间:2019-12-06 10:58:41

标签: mysql

我创建了两个表电话簿座位。当我连接两个表的数据重复时,我不这样做。

SELECT seats.busno,
       seats.seats,
       busbook.status,
       busbook.customer,
       busbook.mobile,
       seats.date
FROM seats
     Left JOIN busbook ON  seats.busno=busbook.busno

这是我得到的输出:

busno  seats     status     customer         mobile    date
91000     1       Booked     ss              11      2019-12-06
91000     2       Booked     ss              11      2019-12-06
91000     3       Booked     ss              11      2019-12-06
91000     4       Booked     ss              11      2019-12-06
91000     5       Booked     ss              11      2019-12-06
91000     6       Booked     ss              11      2019-12-06
91000     7       Booked     ss              11      2019-12-06
91000     8       Booked     ss              11      2019-12-06
91000     9       Booked     ss              11      2019-12-06
91000    10       Booked     ss              11      2019-12-06

座位表:

id    busno   seats       date
1     91000    1      2019-12-06
2     91000    2      2019-12-06
3     91000    3      2019-12-06
4     91000    4      2019-12-06
5     91000    5      2019-12-06
6     91000    6      2019-12-06
7    91000     7      2019-12-06
8    91000     8      2019-12-06
9    91000     9      2019-12-06
10   91000    10      2019-12-06
11   91000     11     2019-12-06
12   91000     12     2019-12-06

电话簿表:

id  busno   seat     status       customer       mobile        date
2   91000    1       Booked          ss            11          2019-12-06
3   91000    19      Booked          dd            22          2019-12-06

3 个答案:

答案 0 :(得分:0)

怎么样

SELECT seats.busno, seats.seats,busbook.status, busbook.customer,busbook.mobile,seats.date FROM seats 
Left JOIN busbook ON seats.busno=busbook.busno
AND seats.seats = busbook.seat

我想这取决于通过seat.id或Seats.seats进行联接的确切方案

答案 1 :(得分:0)

您可以使用以下查询获取所需结果:

SELECT seats.busno,
       seats.seats,
       busbook.status,
       busbook.customer,
       busbook.mobile,
       seats.date
FROM seats
 JOIN busbook ON seats.busno = busbook.busno AND seats.seats = busbook.seat

答案 2 :(得分:0)

选择s.busno,s.seats,s.status,        b。客户,b.mobile,s.date 从席位 s.busno = b.busno AND s.seats = b.seats上的INNER JOIN公交簿b

您的问题要求不是很明确,并且您的问题有被否决的风险。

但是为了解决您的问题。这是您最可能需要的查询。

您使用了LEFT JOIN关键字

但是LEFT JOIN关键字返回左表(表1)中的所有记录,并返回右表(表2)中的匹配记录。如果不匹配,则结果从右侧为NULL。

您要使用的是INNER JOIN关键字,选择两个表中具有匹配值的记录。

您的查询在join ON条件下也有多个错误。我已纠正它,希望这可以解决您的问题。