私は2つのテーブル、friends_tableとinvitations_tableを持っています。 invitations_tableはfriends_tableのサブセットです。私はinvitations_tableの補完を照会したいと思います。両方のテーブルからの関連フィールドはuser_idです。テーブルの一部を照会する方法
friends_table
columns; id, user_one, user_two
invitations_table
columns; id, event_id, request_to, request_from
ので、私はそれらの列のフィールドはinvitations_tableでrequest_to列のフィールドに等しくないuser_one、friends_tableのuser_two、からフィールドを照会します。やはり、invitations_tableのすべてのユーザーIDがfriends_tableに存在します。
これまでの私の試み。
$uninvited = "SELECT user_one, user_two FROM friends_table WHERE user_one, user_two NOT IN (SELECT user_one, user_two FROM friends_table WHERE user_one, user_two IN (SELECT request_to FROM invitees_table))";
$uninvited_query = mysqli_query($conn, $uninvited);
while($uninvited_array = mysqli_fetch_array($uninvited_query)){
$uninvited_friends =$uninvited_array['user_one'];
$uninvited_friend =$uninvited_array['user_two'];
echo $uninvited_friends;
echo $uninvited_friend;
ですから、私は次のようにエラーになります。
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given
これはwhileループに対応します。うまくいけば、これは私の質問を明確にし、これまでの回答に感謝します。私はまた、別の試みでこの同じクエリの失敗を取得します。別のため
$uninvited = "SELECT friend_table.user_one AND friend_table.user_two EXCEPT (SELECT invitees_table.request_to)";
$uninvited_query =mysqli_query($conn, $uninvited);
while($uninvited_array = mysqli_fetch_array($uninvited_query)){
$uninvited_user = $uninvited_array['user_one'];
$uninvited_username = getuser($uninvited_user, 'username');
echo $uninvited_username;
私はこれに、それが問題だったかどうかを確認するために、私の$招かれざるクエリの構文を変更し、してみてください。
$uninvited = "SELECT user_one AND user_two FROM friend_table EXCEPT (SELECT request_to FROM invitees_table)";
でも、他のクエリと同じようにクエリが失敗します。
[[EXCEPT]はMySQLではサポートされていません](http://stackoverflow.com/questions/26426619/using-except-operator-on-mysql-5-1-version) – tadman