我有两个表,第一个表T1包含id和名称,名称包含5个值。第二个表T2包含id和amonut_paid,付费金额列包含3个值。我想显示表中的所有名称T1和sql中的amount_paid
答案 0 :(得分:1)
执行LEFT JOIN
,然后使用IFNULL
将NULL
替换为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