複雑なクエリがあり、正しい答えを得ることができません。 、(INTとしてPK、名VARCHARとして、...)非常に複雑なSQLクエリ
接触
セッション(INTとしてPK、接触INTとして:
は、3つのテーブルがあります。 ..)
メッセージ(pkとしてINT、セッションとしてINT、...)
session.contact
はcontact.pk
を指します。そしてmessage.session
〜session.pk
。
session.contact
がゼロの場合、この行の連絡先はありません。 contact.pk
は決してゼロではありません。
今、特定のメッセージのすべての名前を取得したいと思います。
SELECT message.pk、メッセージからcontact.name、セッション、WHERE message.session = session.pk AND session.contact = contact.pk
に連絡しかし、私はdidnの:私の試みは、このました正しい行数が返されます。それは2459でなければならず、2075年です。
A)それは非常に複雑ではありません。 b)正しい答えがどのように分かっていますか?試験問題ですか? –
私はテーブルを外部から参加させる必要があると思う(つまり、あなたの例では 'session.contact = contact.pk'は一致するものを見つけるつもりはない)。 – Marc
連絡先のないレコードを取得しようとしていますか?あなたの現在のクエリはそれらを取得しません。それはあなたの不足かもしれない –