実行MySQL 5.0.88していて、 と という 2 つのテーブルからデータを選択する必要がありarticlesますmedia。
type="img"画像をサーバーにアップロードするとき、不要な上書きを避けるために、ユーザーのすべての記事を照会し、メディア テーブル (フィールド ) にパスが既に指定されているかどうかを確認する必要があります。
クエリにを含めることだけを望んでいましたが、m.type機能させることができません。
私のクエリは次のようになります。
SELECT DISTINCT a.style, a.filename, a.path, m.type
FROM articles AS a
LEFT JOIN mnedia AS m
ON a.iln = m.iln
WHERE
a.iln = id_12345
AND m.type = "img"
AND m.type IS NOT NULL
これにより、ユーザーid_12345のすべての記事(正しい)が得られますが、メディアテーブルには article のレコードが1つしかありませんが、typeフィールドは常にです。imgabc
質問:テーブルにリストされていない記事と、テーブルにリストされている記事( など
) を表示しているユーザー (作業中) のすべての記事を返すには、どのように照会する必要がありますか?type=NULLmediatype="img"mediaabc
手伝ってくれてありがとう!
EDIT : テーブルarticlesにはレコードが含まれる場合があります:
abc
d
e
f
g
テーブルには次のmediaものが含まれる場合があります
abc type=img
クエリは次を返す必要があります。
abc type=img
d type=NULL
e type=NULL
f type=NULL
g type=NULL
EDIT :この画像のように、 にない
すべてのレコードを取得してもかまいません。2番目の結合の左側 ("b.Key IS NULL)articlesmedia
解決策: わかりました。両方のテーブルを結合するときに、user_id 以外の別のフィールドを確認する必要がありました。これがどのように機能するかです:
SELECT DISTINCT a.style, a.filename, a.path, m.type
FROM articles AS a
LEFT JOIN mnedia AS m
ON a.iln = m.iln
AND a.style= m.style
WHERE
a.iln = id_12345
AND ( m.type = "img" OR m.type IS NULL )
あなたの提案に感謝します!