2017-08-10 16 views
0

クエリを実行する際に問題が発生しました。私はこのように2つのSQLクエリいます別のselect文が条件を満たす場合にsqlクエリを実行する条件を含める

SELECT COUNT(clients_id) FROM users_clients WHERE users_id = 'sample'; 

そして

SELECT name FROM clients JOIN users_clients ON clients.client_id = users_clients.clients_id WHERE users_clients.users_id = 123456; 

最初は1と同等以上である場合、私は2番目のSQL文を実行する必要がありますが、私はちょうどでこのクエリを実行することができます1つの声明?たぶん

答えて

0

SELECT .... second_query 
WHERE 
    ..... 
    AND (
     SELECT COUNT(clients_id) FROM users_clients WHERE users_id = 'sample' 
    ) > 1 

サブクエリ< = 1、の結果は、その後、全体のクエリが行を返さない場合。実際、MySqlはメイン(2番目)のクエリをまったく実行しません。あなたが使用することができ

+0

ああ、神様が存在します。それはとても簡単でした。本当にたくさんのkrokodilkoありがとう。 – zagk

0

SELECT name 
    FROM clients 
    JOIN users_clients ON clients.client_id = users_clients.clients_id 
    WHERE users_clients.users_id = 123456 
    and exists(
    SELECT COUNT(clients_id) 
    FROM users_clients 
    WHERE users_id = 'sample' 
    ) 
    ; 
0
SELECT name 
FROM clients 
JOIN users_clients 
ON clients.client_id = users_clients.clients_id 
WHERE users_clients.users_id = 123456 
AND (SELECT COUNT(clients_id) FROM users_clients WHERE users_id = 'sample') > 1 
+0

この回答が役に立つかもしれませんが、それがうまく働いていることを説明し、OPが彼女/彼女自身が次回にそのコンストラクトを理解して使用するのを助ける方が良いでしょう –

関連する問題