我有两个表,第一个表T1包含id和name,名称包含5个值

时间:2017-02-22 07:02:51

标签: mysql sql

我有两个表,第一个表T1包含id和名称,名称包含5个值。第二个表T2包含id和amonut_paid,付费金额列包含3个值。我想显示表中的所有名称T1和sql中的amount_paid

3 个答案:

答案 0 :(得分:1)

执行LEFT JOIN,然后使用IFNULLNULL替换为0

SELECT T1.name,IFNULL(T2.amount_paid,0)
FROM T1 
LEFT JOIN T2  ON T1.id=T2.id

注意:您可以使用IFNULL作为strawberry,而不是COALESCE

答案 1 :(得分:0)

在这些表T1和T2上使用LEFT JOIN,这样它只显示存在针对AMOUNT_PAID的NAME的行(INNER JOIN提供这两个表中可用的行)

SELECT T1.name, T2.amount_paid
FROM T1
LEFT JOIN T2 ON T1.id = T2.id

--RETURNS 3 rows as per your example

在这些表T1和T2上使用OUTER JOIN,以便它显示所有行,而不管这些表中是否存在这些值。

RETURNS 5 rows as per your example

答案 2 :(得分:0)

在此处使用<html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> </head> <body> <div class="container jumbotron"> <div class="row "> <div class="col-sm-8 col-sm-offset-4 column"> <form class="form-inline"> <label class="sr-only" for="email">Email address</label> <div class="input-group"> <div class="input-group-addon">@</div> <input type="email" class="form-control" id="email" placeholder="Your email"> </div> <button type="submit" class="btn btn-primary">Sign up</button> </form> </div> </div> </div> </body> </html>,因为您的left join包含5个名称,并且您希望显示t1表中的所有名称。而您的t1 table只包含三个条目(amount_paid)。

t2 table