Показывать значения, которые не соответствуют запросу

#php #mysql

Вопрос:

Это базовый запрос, который находит условие $sql.

 $sql = "SELECT jobs.pickup as myPickup, jobs.dropoff as myDropoff FROM jobs, locality WHERE 
locality.pickup=jobs.pickup AND locality.dropOff=jobs.dropoff";
$test= mysqli_query($conn, $sql);

  while( $row = mysqli_fetch_assoc($test)) {
echo "Pick up: " . $row["myPickup"]. " to ".$row["myDropoff"]."<br>";
 

Как бы вы показали все значения, которые потерпели неудачу? Я пытался

 $row != mysqli_fetch_assoc($test)
//and
while($row = mysqli_fetch_assoc($result) == false) 
 

но, похоже, это ни к чему не приведет. Я также попытался отредактировать SQL с помощью этого кода:

 SELECT jobs.pickup as myPickup, jobs.dropoff as myDropoff FROM jobs, locality WHERE locality.pickup!=jobs.pickup AND locality.dropOff!=jobs.dropoff
 

но это тоже не сработало, и по какой-то причине SQL по какой-то причине оператор «И» в SQL «locality.pickup=задания.pickup И locality.dropOff=задания.dropoff» код действует как функция «ИЛИ»… странный

Комментарии:

1. Что значит «провалился»?

2. $row != mysqli_fetch_assoc($test) в этом нет никакого смысла. И что вы на самом деле здесь хотите, тоже не совсем понятно. Вы пытаетесь определить, какие записи в вашей таблице не были выбраны вашим запросом?

3. да, все верно.

4. Тогда все, что вам нужно сделать, это инвертировать критерии выбора. например WHERE NOT (locality.pickup=jobs.pickup AND locality.dropOff=jobs.dropoff) , но я не знаю, насколько это имеет смысл, так как вы используете устаревшее неявное объединение

5. Вы хотите знать все вакансии, для которых нет подходящего населенного пункта?

Ответ №1:

Я попробовал «ГДЕ НЕТ» в SQL, но я не знал, что вам нужно добавлять скобки. Вот почему он вел себя неправильно

 SELECT jobs.pickup as myPickup, jobs.dropoff as myDropoff FROM jobs, locality WHERE NOT (locality.pickup=jobs.pickup AND locality.dropOff=jobs.dropoff);