4

1つのテーブルにアイテムがあり、別のテーブルにサブアイテムがあるとします。限られた数のアイテムに関連するすべてのサブアイテムを返品したいと思います。本質的に、私はこれら2つのクエリに参加したいと思います。

SELECT * FROM subitem

SELECT * FROM item LIMIT 10

ここでsubitem.item = item.id

私はこれを試しました:

SELECT * FROM subitem INNER JOIN item ON subitem.item = item.id LIMIT 10

ただし、このクエリは10個のサブアイテムのみを返します(予想どおり)。アイテムの数だけを10に制限しながら、すべてのサブアイテムを取得したいのですが、どうすればこれを実現できますか?

4

4 に答える 4

5

これで10個のアイテムが手に入ります。ただし、探しているアイテムを取得するには、WHERE句とORDERBY句を追加する必要があります。

SELECT * FROM subitem INNER JOIN 
              (SELECT * FROM items LIMIT 10) AS I
              ON subitem.item = I.id 
于 2012-07-23T17:20:01.360 に答える
3

次のクエリで試してください。

select * from item,subitem where id = item and 
  id in (select id from item limit 10)

に問題がある場合はINLIMIT次のクエリを試してください。

select * from (select id from item limit 10) as i1, subitem where id =item ;
于 2012-07-23T17:20:48.237 に答える
0

多分次のようなものです:

SELECT * FROM subitem WHERE item IN(SELECT id FROM item LIMIT 10);

于 2012-07-23T17:21:28.893 に答える
-1

このクエリで制限を使用する方法

select tbl_thread.id,user_id,name,tbl_User.alert_flag,thread_name,thread_status,(select CAST(count(*) as UNSIGNED) from tbl_message where thread_id=tbl_thread.id AND read_status='0' and msg_from='EU' ) as unread,thread_timestamp,(select CAST(max(id) as UNSIGNED) from tbl_message where thread_id=tbl_thread.id) as max_id from tbl_thread,tbl_User where tbl_User.UserID=user_id ;
于 2018-04-26T11:30:38.037 に答える