欢迎,
我有两张表int_client
和int_client_bank
。
在第一个重要栏目中:client_id, firstname, lastname, country, email, status
。
在第二个:client_id, status
。
我需要显示第一列的所有记录:firstname, lastname, country, e-mail WHERE status='25'
(第二个表中出现client_id
的记录除外)。
如果第二个表中出现client_id
,则跳过第一列的状态,并在secound表中仅显示status='25'
。
Sb可以帮助我吗?
编辑:
SELECT firstname, lastname, country, email, COALESCE(b.status, a.status) status
FROM int_client a
LEFT JOIN int_client_back b USING (client_id)
WHERE
(b.status IS NULL and a.status='25')
OR b.status IS NOT NULL;
这是一个很好的代码,但我只需要显示有状态=' 25'在B列中,如果a.client_id!= b.client_id,我需要显示记录,其状态为=' 25'在A栏
某人,帮帮忙?答案 0 :(得分:0)
LEFT JOIN
的 COALESCE()
应该:
SELECT firstname, lastname, country, email, COALESCE(b.status, a.status) status
FROM int_client a
LEFT JOIN int_client_back b USING (client_id)
WHERE
(b.status IS NULL and a.status='25')
OR b.status IS NOT NULL;
答案 1 :(得分:0)
此选择查询应该有效:
SELECT t1.first_name,t1.last_name,t1.country,t1.email FROM int_client AS t1, int_client_bank AS t2
WHERE t1.client_id = t2.client_id AND t1.status = 25;
答案 2 :(得分:0)
以下是为您提供帮助的查询。
SELECT client_id, firstname, lastname, country, email, status FROM int_client as ic LEFT JOIN int_client_back icb ON ic.client_id=icb.client_id WHERE ic.status=25
答案 3 :(得分:0)
如果我理解正确,您需要来自int_client
的所有记录,状态为" 25"。但是,如果int_client_bank
中存在其他状态,则您希望显示该状态。
select c.first_name, c.last_name, c.email, c.country,
coalesce(cb.status, c.status)
from int_client c left join
int_client_bank cb
on cb.client_id = c.client_id
where c.status = 25;
答案 4 :(得分:0)
SELECT DISTINCT firstname, lastname, country, email,
a.status as status_a, b.status as status_b, if(b.status is NULL, a.status, b.status) as final_status
FROM int_client a
LEFT JOIN int_client_bank b USING (client_id)
WHERE
if(b.status is NULL, a.status, b.status) = '25'