1sf/bird-sql-train-with-schema huggingface dataset:
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: How many of the books authored by Al Gore have less than 400 pages?
Evidence: "AI Gore" is the author_name; have less than 400 pages refers to num_pages < 400
SQL: SELECT COUNT(*) FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id WHERE T3.author_name = 'Al Gore' AND T1.num_pages < 400
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: List the author's and publisher's name of the book published on July 10, 1997.
Evidence: author's name refers to author_name; publisher's name refers to publisher_name; book published on July 10, 1997 refers to publication_date LIKE '1997-07-10'
SQL: SELECT T3.author_name, T4.publisher_name FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id INNER JOIN publisher AS T4 ON T4.publisher_id = T1.publisher_id WHERE T1.publication_date = '1997-07-10'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: What is the language of the book with ISBN 23755004321?
Evidence: "23755004321" is the isbn13; language refers to language_name
SQL: SELECT T2.language_name FROM book AS T1 INNER JOIN book_language AS T2 ON T1.language_id = T2.language_id WHERE T1.isbn13 = 23755004321
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: What is the title of the most expensive book?
Evidence: most expensive book refers to Max(price)
SQL: SELECT T1.title FROM book AS T1 INNER JOIN order_line AS T2 ON T1.book_id = T2.book_id ORDER BY T2.price DESC LIMIT 1
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Calculate the total price of books ordered by customer named Lucas Wyldbore.
Evidence: total price refers to Sum(price); full name is composed of first name, last name
SQL: SELECT SUM(T1.price) FROM order_line AS T1 INNER JOIN cust_order AS T2 ON T2.order_id = T1.order_id INNER JOIN customer AS T3 ON T3.customer_id = T2.customer_id WHERE T3.first_name = 'Lucas' AND T3.last_name = 'Wyldbore'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: List the ISBN of the book published in Spanish.
Evidence: "Spanish" is the language_name; ISBN refers to isbn13
SQL: SELECT T1.isbn13 FROM book AS T1 INNER JOIN book_language AS T2 ON T1.language_id = T2.language_id WHERE T2.language_name = 'Spanish'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Among the books that cost less than 1 dollar, how many were published by Berkley Trade?
Evidence: book cost less than 1 dollar refers to price < 1; 'Berkley Trade' is the publisher_name;
SQL: SELECT COUNT(*) FROM publisher AS T1 INNER JOIN book AS T2 ON T1.publisher_id = T2.publisher_id INNER JOIN order_line AS T3 ON T3.book_id = T2.book_id WHERE T1.publisher_name = 'Berkley' AND T3.price < 1
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: List the title of the books purchased by the customer named Zia Roizin.
SQL: SELECT T1.title FROM book AS T1 INNER JOIN order_line AS T2 ON T1.book_id = T2.book_id INNER JOIN cust_order AS T3 ON T3.order_id = T2.order_id INNER JOIN customer AS T4 ON T4.customer_id = T3.customer_id WHERE T4.first_name = 'Zia' AND T4.last_name = 'Roizin'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Who authored the book with greatest number of pages?
Evidence: greatest number of pages refers to Max(num_pages); who authored refers to author_name
SQL: SELECT T3.author_name FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id ORDER BY T1.num_pages DESC LIMIT 1
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: List the email of customers that bought the book titled Switch on the Night.
Evidence: "Switch on the Night" is the title
SQL: SELECT T4.email FROM book AS T1 INNER JOIN order_line AS T2 ON T1.book_id = T2.book_id INNER JOIN cust_order AS T3 ON T3.order_id = T2.order_id INNER JOIN customer AS T4 ON T4.customer_id = T3.customer_id WHERE T1.title = 'Switch on the Night'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: List the author's name of the books published by Abrams.
Evidence: "Abrams" is the publisher_name; author's name refers to author_name
SQL: SELECT T3.author_name FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id INNER JOIN publisher AS T4 ON T4.publisher_id = T1.publisher_id WHERE T4.publisher_name = 'Abrams'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: What is the publisher name of the book titled The Illuminati?
Evidence: "The Illuminati" is the title of book
SQL: SELECT T2.publisher_name FROM book AS T1 INNER JOIN publisher AS T2 ON T1.publisher_id = T2.publisher_id WHERE T1.title = 'The Illuminati'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: In books authored by Abraham Lincoln, what is the percentage of the books published in 1992?
Evidence: "Abraham Lincoln" is the author_name; published in 1992 refers to publication_date LIKE '1992%'; percentage = Divide (Sum(publication_date LIKE '1992%'), Count(publication_date)) * 100
SQL: SELECT CAST(SUM(CASE WHEN STRFTIME('%Y', T1.publication_date) = '1992' THEN 1 ELSE 0 END) AS REAL) * 100 / COUNT(*) FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id WHERE T3.author_name = 'Abraham Lincoln'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Among the books published in 2004, list the name of the publisher of books with number of pages greater than 70% of the average number of pages of all books.
Evidence: published in 2004 refers to publication_date LIKE '2004%'; books with number of pages greater than 70% of the average number of pages refers to num_pages > Multiply(Avg(num_pages), 0.7); name of publisher refers to publisher_name
SQL: SELECT T1.title, T2.publisher_name FROM book AS T1 INNER JOIN publisher AS T2 ON T1.publisher_id = T2.publisher_id WHERE STRFTIME('%Y', T1.publication_date) = '2004' AND T1.num_pages * 100 > ( SELECT AVG(num_pages) FROM book ) * 70
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Provide the contact email of Moss Zarb.
SQL: SELECT email FROM customer WHERE first_name = 'Moss' AND last_name = 'Zarb'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Name the streets in Dallas.
Evidence: "Dallas" is the city; streets refers to street_name
SQL: SELECT street_name FROM address WHERE city = 'Dallas'
Database: books
Tables: address_status, author, book_language, country, address, customer, customer_address, order_status, publisher, book, book_author, shipping_method, cust_order, order_history, order_line
Columns (table index, column name): -1, *, 0, status_id, 0, address_status, 1, author_id, 1, author_name, 2, language_id, 2, language_code, 2, language_name, 3, country_id, 3, country_name, 4, address_id, 4, street_number, 4, street_name, 4, city, 4, country_id, 5, customer_id, 5, first_name, 5, last_name, 5, email, 6, customer_id, 6, address_id, 6, status_id, 7, status_id, 7, status_value, 8, publisher_id, 8, publisher_name, 9, book_id, 9, title, 9, isbn13, 9, language_id, 9, num_pages, 9, publication_date, 9, publisher_id, 10, book_id, 10, author_id, 11, method_id, 11, method_name, 11, cost, 12, order_id, 12, order_date, 12, customer_id, 12, shipping_method_id, 12, dest_address_id, 13, history_id, 13, order_id, 13, status_id, 13, status_date, 14, line_id, 14, order_id, 14, book_id, 14, price
Question: Which books were released by Orson Scott Card in 2001?
Evidence: "Orson Scott Card" is the author_name; released in 2001 refers to publication_date LIKE '2001%'; books refers to title
SQL: SELECT T1.title FROM book AS T1 INNER JOIN book_author AS T2 ON T1.book_id = T2.book_id INNER JOIN author AS T3 ON T3.author_id = T2.author_id WHERE T3.author_name = 'Orson Scott Card' AND STRFTIME('%Y', T1.publication_date) = '2001'