-1

次のような 2 つの MySQL テーブルがあります。

ツール所有者:

tool_owners_id | user_id | ...


ツール:

tools_id | tool_owners_id | tool_name | ...


user_id とツール名があります。ユーザーが特定のツールを所有しているかどうかを確認する必要があります。問題は、これらの情報 (user_id と tool_name) が別々のテーブルにあり、行が tool_owners_id によってリンクされていることです。

誰かが疑問に思っている場合に備えて、テーブルの構造を変更することはできません。

私が求めていることは可能ですか?これを行う方法を知っている唯一の方法は、tool_owners テーブルから tool_owners_id を取得する最初のクエリを作成してから、tool_owners_id = xxx AND tool_name = xxxx を tools テーブルから COUNT(*) を実行する 2 つ目のクエリを作成することです。

ご協力いただきありがとうございます!

4

2 に答える 2

3

結合を使用する

SELECT * 
FROM table1 
LEFT JOIN table2 
    ON table1.tool_owners_id=table2.tool_owners_id 
WHERE table1.user_id=1 
AND table2.tool_name='hammer'
于 2012-06-24T19:52:23.997 に答える
0
select count(o.*) 
from tool_owners o
inner join tools t on t.tools_owners_id = o.tools_owners_id
where o.user_id = 123
and t.tool_name = 'toolname'
于 2012-06-24T19:52:51.900 に答える