を有することに反対しているとして、どのような開発者がより明白になりますあなたは現在、内部結合を行っています。あなたのクエリが書き込みに相当します。
SELECT social.withID, accounts.username
FROM social INNER JOIN accounts ON (social.withID = accounts.id)
WHERE social.id = ? AND friendAccept = 1
クエリとどのようなあなたが左外側に切り替える取得したい場合は参加の違いは、レコードが右側のテーブルに存在しない場合に何が起こるかです。内部結合の場合、レコードがアカウントに存在しない場合(ON条件に従って、たとえばそのIDを持つアカウントを見つけることができない場合)、行は返されません。左外部結合では、代わりにNULLが返されます。
あなたのスキーマはわかりませんが、接続(withID)は存在するアカウントにしか行かないと思うので、アカウントの行は常に存在します。しかし、のは関連するクエリを考えてみましょう:
SELECT a.account_id, COUNT(s.withID) AS friend_count
FROM accounts a INNER JOIN social s ON (a.account_id = s.withID)
GROUP BY a.account_id
あなたは内部結合として(ON条件の一致がないため)、その後、任意の友人のない人々が出力に表示されませんことをままにした場合。左結合に変更すると、友人がいないと出力に表示されます。 [このクエリは、受け入れられたステータスなどを無視している可能性があります。もう一度、私はあなたのスキーマを知らない]
それは私にとってMySQLの有効なチャンクのように見えません!そこに何か他のものがありますか?有効なMySQLクエリを表示するために削除できますか? –
@ TomalakGeret'kal:軽微な構文エラーを除いて(私はそれを実行していません)、どのように無効に見えますか? – derobert
@derobert:私は '$ q = $ dbc - > prepare'のようなSQL構文を思い出しません。しかし、訂正してうれしい。 –