0

私は2つのテーブルを持っています。
このようなもの:

ウイン | 名前

このような他のもの:

tag_uin | uin_item | タグ名

次のように、必要なタグを持つすべての uin を見つけたいです。

"SELECT nir_parts.name, nir_ntag.* FROM `nir_parts`
LEFT JOIN `nir_ntag` ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin = 212 AND WHERE nir_ntag.uin = 313 
ORDER BY RAND() LIMIT 11"

これは何らかの理由で機能しません...助けてください。

前もって感謝します。

4

1 に答える 1

2

を使用ORして 2 つのタグを検索するか、IN()

SELECT nir_parts.name, nir_ntag.* 
FROM nir_parts 
LEFT JOIN nir_ntag ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin in (212, 313)
ORDER BY RAND() 
LIMIT 11

1 つのレコードに両方のタグを同時に含めることはできません。

両方のタグが含まれているレコードのみが必要な場合は、次のことができます

SELECT nir_ntag.uin_item 
FROM nir_parts 
LEFT JOIN nir_ntag ON nir_parts.uin = nir_ntag.uin_item 
WHERE nir_ntag.uin in (212, 313)
group by nir_ntag.uin_item
having count(distinct nir_ntag.uin) = 2
于 2013-09-20T08:43:42.007 に答える