1

2 つのテーブルがあります。

-- ユーザー --

id  name    borrower
--  ------  --------
1   Peter   1
2   John    1
3   Mark    1
4   David   0

-- 貸付 --

id から 金額
-- ---- -- ------
1 1 2 100

次のように、Peter がお金を貸しておらず、借り手 = 1 (結果から Peter を除く) であるユーザーを出力する必要があります。

id  name    borrower
--  ------  --------
3   Mark    1

今、私はこのクエリで立ち往生しています(動作しません):

SELECT * 
FROM `users` u 
LEFT OUTER JOIN `lendings` l
ON u.`id` = l.`from`
WHERE l.`from` is null
AND u.`id` != 1
AND u.`borrower` = 1

これは、将来の読者のために質問を有用/読みやすくするための実際のコードの単純化された例です。

関連する質問: MySQL: 別のテーブルにない場合にのみ、あるテーブルからメールを選択しますか?

4

1 に答える 1

2

このようなもの?

SELECT 
    *
FROM
    users
WHERE
    id NOT IN (SELECT 
            id
        FROM
            lendings)
        AND borrower = 1;

mysqlの予約語であるfromとtoは、別の列名を使用することをお勧めします。

于 2012-04-21T01:03:49.870 に答える