2009-04-01 5 views
0

私はPHPとMySQLを学び、サーバー側のスクリプトと個人的な興味/関心を掴んでいます。 「こんにちは世界」を超えた最初の「プログラム」は、自分自身のブログを書くようです。空の/ NULLフィールド(MySQL)が空のセットを返すのを防ぐ、カウンターまたは補償する方法

これはまだ私を少し超えているので、私は連絡先データベースタイプから始めたいと思っていました。これまでのところとても良いですが、(そしていつもあります!)私は、連絡先の名前がmailto:リンクとして書式設定された形式でプレゼンテーションをフォーマットしようとしています。

私はcontacts.contactIDはその頭をもたげ等しくするemail.contactIDの明らかな欠如を、その時点で、DBに電子メールアドレスがない連絡先を入力してみろまで、これは問題ありません。

私はこれに対処できなければならないことを理解していますが... ...私はどのように(不眠症のために@ @ @)考えることができません。任意の提案をいただければ幸いです。

答えて

2

左(別名左外)結合が必要です。

select concat(c.fname, ' ', c.sname) as name, e.address as email 
from contacts c 
left join emails e 
on (c.contactID = e.contactID) 
+0

ありがとう!あなたがどのように知っているのは簡単だと思いますか?とても有難い!^_^ –

+0

問題ありません...新しいものを試してみてください! SQLはマスターするのが難しいです。私は個人的に "Beginning Databases"( "Sams 24 hours Teach Yourself"の一つ)のような簡単な本を見つけたので大きな助けになりました。 – jvenema

1

は連絡先や電子メールのテーブルを結合する外部結合を使用してください:彼らは1を持っている場合、これはあなたのすべての連絡先やメールアドレスのを返します

SELECT 
     CONCAT(fname,', ',sname) AS name, email.address AS email 
FROM 
    contacts c 
    left outer join emails e on (c.contactID = e.contactID) 

、他の賢明なアドレスはnullになります。

+0

ありがとうございます!助けは素晴らしかった:) –

関連する問題