Извлечь данные из базы данных из условия соответствия нескольких таблиц
Я хочу получить данные из базы данных. У меня есть три таблицы в моей базе данных: listing_master_residential
, listing_master_condo
а также listing_master_commercial
, Есть один первичный ключ, Ml_num
во всех таблицах. Я хочу искать данные из одной таблицы, которая соответствует таблице чисел MLS.
if (isset($_POST['search'])) {
$mls=$_POST['mls_number'];
$sql = "SELECT * FROM listing_master_residential,
listing_master_condo,
listing_master_commercial
INNER JOIN listing_master_residential AS res ON res.Ml_num=Ml_num
INNER JOIN listing_master_condo AS con ON con.Ml_num=Ml_num
INNER JOIN listing_master_commercial AS com ON com.Ml_num=Ml_num
WHERE Ml_num='$mls'";
$result = $wpdb->get_results($sql) or die(mysql_error());
foreach ( $result as $row) {
echo $row->Lot_code."<br/>";
echo $row->Ml_num."<br/>";
echo $row->Acres;
echo $row->Addr."<br/>";
echo $row->Bath_tot;
echo $row->Br;
echo $row->Br_plus;
}
}
С учетом вышеизложенного я получаю сообщение об ошибке:
Столбец 'Ml_num', в котором предложение неоднозначно
1 ответ
Поскольку столбец Ml_num находится во всех таблицах, вам необходимо обратиться к нему с полным именем, например con.Ml_num.
Я также заметил, что вы объединяете все таблицы дважды, один раз с неявным соединением и один раз с ANSI-соединением. Неявное объединение приведет к перекрестному соединению, поскольку в предложении where нет условий объединения.