2015-06-25 4 views
0

я создал книги сайта и у меня есть таблицы ниже:получить данные из таблицы книг связаны с другой таблицей

  1. Книга (автор идентификатор есть в этой таблице)
  2. authors_compile_rel (здесь идентификатор компиляторов из книг)

скомпилированные книги и идентификатор автора вводятся в таблице authors_compile_rel.

Я создал запрос ниже, но он не показывает скомпилированные книги автора.

$auth_id = mysql_real_escape_string($_GET['id']); 
$query  = " 
SELECT b.id, b.unique_name, b.native_name, b.auth_id, b.status, b.create_date, ar.auth_id FROM books b, authors_compile_rel ar 
WHERE b.status = 1 AND b.auth_id = ".$auth_id." OR b.t_auth_id = ".$auth_id." 
OR b.id = ".$auth_id." OR ar.auth_id = ".$auth_id." 
ORDER by id DESC"; 
+0

Пожалуйста, добавьте DDL для создания таблиц, а также используйте параметризованные запросы вместо вставки строк. – o11c

+0

Настоятельно рекомендуем вам ознакомиться с SQL-инъекцией: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –

ответ

0

Должно быть отношение между книгами и authors_compile_rel таблицами, возможно, book_id. Я полагаю, что это поле является внешним ключом:

SELECT 
b.id, b.unique_name, b.native_name, b.auth_id, b.status, b.create_date, ar.auth_id 
FROM books b LEFT OUTER JOIN authors_compile_rel ar ON (b.id = ar.book_id) 
WHERE 
b.status = 1 AND (b.auth_id = ".$auth_id." OR b.t_auth_id = ".$auth_id." OR ar.auth_id = ".$auth_id.") 
ORDER by b.id DESC 
Смежные вопросы