标签: multiple-tables

如何使用包含结果链接的pg_search multisearch创建搜索结果页面?

我终于想出了如何实现pg_search的multiisearch功能.但是我在制作一个可用的搜索结果页面时遇到了麻烦,该页面显示了包含搜索词的各种文章和常见问题解答的链接.这是使用Rails 3.2.3的一个非常基本的设置:

楷模:

我有一个文章和一个常见问题解答模型,都有"标题"和"内容"属性,以及这两个模型中的代码:

include PgSearch
multisearchable :against => [:title, :content]
Run Code Online (Sandbox Code Playgroud)

搜索表单查看代码:

搜索表单将所有内容传递给名为"results"的控制器.

<%= form_tag result_index_path, method: :get do %>
  <%= text_field_tag :query, params[:query] %>
  <%= submit_tag "GO", name: nil %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

结果控制器:

class ResultController < ApplicationController
  def index
     @pg_search_documents = PgSearch.multisearch(params[:query])
  end
end
Run Code Online (Sandbox Code Playgroud)

我想创建一个搜索结果页面,显示找到的每个结果的标题,并返回该项目的链接.我想出了如何将'class'属性拉出@pg_search_documents.我的想法是在结果页面上做这样的事情:

<ul>
<% @pg_search_documents.each do |pg_search_document| %>
  <li><%= link_to pg_search_document.searchable.title, "../#{pg_search_document.searchable.class}/#{pg_search_document.searchable.id}" %></li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

此代码产生的示例链接是:http://localhost/Article/3.如果我能弄清楚如何对"pg_search_document.searchable.class"进行整理和复数化,那么我将无家可归.我试过在模型和控制器中编写各种方法,并尝试编写一个帮助器.但这是我的Rails技能让我失望的地方.

有什么建议?有谁知道更优雅的方式来完成这个?任何想法/建议都非常感谢.

full-text-search multiple-tables ruby-on-rails-3 pg-search

4
推荐指数
1
解决办法
1949
查看次数

MySQL和分面导航(按属性过滤)

我觉得这个问题可能已经被问过了一千次,所以如果有人回答,我会道歉.如果是这样,有人能指出我正确的帖子/链接?

我要做的是为我的网站构建一个分面导航.它使用MySQL,这里是我正在使用的表的草图:

products:
- id
- title
- description
attributes:
- product_id
- name
- value
categories:
- id
- name
products_to_categories:
- product_id
- category_id

我想要做的是当你在一个类别时显示可用属性列表,允许你为每个属性选择一个或多个值.举个例子,请查看Office Depot的这个页面:http://www.officedepot.com/a/browse/binders/N=5+2177/

到目前为止,我已经使用了很多连接来过滤多个属性:

SELECT products.*, a_options.*
FROM products_to_categories AS pc, products,
attributes AS a_options,    /* list of attribute/value pairs I can continue to refine on */
attributes AS a_select1     /* first selected attribute */
attributes AS a_select2     /* second selected attribute */
...
WHERE pc.category_id = 1
AND products.id = pc.product_id …

mysql multiple-tables faceted-search

3
推荐指数
2
解决办法
5538
查看次数

Ruby on Rails - 多个表中的Where子句

使用rails 3.2.3.

这真让我抓狂.我知道活动记录应该简化这些类型的操作,但我无法理解它.

我有一个酒店和设施模型.两者都有has_and_belongs_to_many关系.酒店可以有许多设施,我的目标是搜索酒店的名称/位置,评级和设施.

我可以通过前两个搜索但不能按设施搜索(它们是搜索表单上的复选框).

查看代码:

<%= form_tag hotels_path, :method =>'get' do%>
        <p>
            <b>Location:</b>
            <%= text_field_tag :search, params[:search]%><br /><br />


            <b>Rating:</b><br />
            <%= radio_button_tag :ranking, '5'%>5 Stars<br />
            <%= radio_button_tag :ranking, '4'%>4 Stars<br />
            <%= radio_button_tag :ranking, '3'%>3 Stars<br />
            <%= radio_button_tag :ranking, '10'%>Hostels<br /><br />


            <b>Facilities:</b><br />
            <% for facility in Facility.find(:all) %>
                <div class="field">
                    <%= check_box_tag "fc[]", facility.id%>
                    <%= facility.description %>
                </div>
            <% end %>

            <%= submit_tag "Search", :name => nil%>
        </p>
        <%end%>
Run Code Online (Sandbox Code Playgroud)

酒店控制器:

 def index
    @hotels= Hotel.search(params) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails multiple-tables where where-clause

3
推荐指数
1
解决办法
3316
查看次数

数千个db表VS一个巨大的表

我正在尝试开发一个跟踪每日库存数据的应用程序.(每天为每个股票创建一条新记录).跟踪将有大约5000-10000股票.然后我需要分析每天,每月或其他时期的一些股票数据,并保留它.

我的问题是:为每个股票设置一个活动表,以保持日常活动(每天都是新行)或者更聪明的是,每天为所有股票插入一个包含10,000条记录的巨大表格会更好吗?请记住,我需要每天为每个库存进行批量计算(计算移动平均值和东西).

sql database-design multiple-tables

3
推荐指数
1
解决办法
145
查看次数

查询多个表,包括具有空外键MySQL的行

这是我第一次使用mysql,我需要一些帮助.我找不到任何解决办法,因为它太容易了,或者我太正常了,无法正常查找.

我想从我的测试数据库中的多个表中进行查询.我们说表是:

类别(*id_category,*id_product)

产品(*id_product,id_category,id_supplier,id_manufacturer)

制造商(*id_manufacturer,名称)

供应商(*id_supplier,名称)

带*的列是整数主键,而不是null,带有auto_increment(从1开始).其他id列只是整数外键(默认为null).

我还需要一个查询,也包括产品表上带有null id_manufacturer和/或id_supplier的行.product表中的那些空字段返回值'0',所以当我进行查询时

SELECT category.id_product, manufacturer.name, supplier.name 
FROM category, product, manufacturer, supplier 
WHERE category.id_category = product.id_category AND manufacturer.id_manufacturer = product.id_manufacturer AND supplier.id_supplier = product.id_supplier;
Run Code Online (Sandbox Code Playgroud)

没有显示具有空值(0)的行.我希望您能够以最干净,最有效的方式指出我,而不必更改表格属性.任何帮助将非常感谢.

mysql null foreign-keys multiple-tables

3
推荐指数
1
解决办法
2919
查看次数

SELECT 多个值到多个表中的同一个键

我有以下结构的两个表

表格1

uid | name | age
1   | John | 24
2   | Adam | 35
3   | Sara | 26
Run Code Online (Sandbox Code Playgroud)

表_2

id | uid | meta_key | meta_value
1  | 2   | location | NY
2  | 2   | school   | NYU
3  | 3   | Location | NY
4  | 3   | school   | XYZ
6  | 1   | location | NY
6  | 1   | school   | NYU
Run Code Online (Sandbox Code Playgroud)

我想做的是从 table_1 中选择用户,其位置是 NY,学校是 NYU

这是我尝试使用的查询,但没有成功

SELECT
  tabl_1.uid …
Run Code Online (Sandbox Code Playgroud)

mysql multiple-tables

3
推荐指数
1
解决办法
2320
查看次数

带有条件的多个表上的 mySQL 左连接

我有个问题。我有4张桌子:

Invoice_Payment、发票、客户和日历

基本上,我有以下查询,效果很好,除了没有 date_due 的月份不会返回。IE 只会返回带有 date_due 的月份。

注意:日历表只列出一年中的每一天。它包含一个 col 调用 date_field

数据库:http : //oberto.co.nz/jInvoice.txt

预期输出:下面我当前的查询将返回如下内容:

month       total
August      5
September   0
October  196
November  205
December  214
January  229
Run Code Online (Sandbox Code Playgroud)

请注意九月没有返回?这是因为表 Invoice_Payment 没有 date_due 记录

我想我必须使用左联接并加入日历表,例如:LEFT JOIN Calendar ON Invoice_Payments.date_paid = Calendar.date_field。但我没有运气

SELECT MONTHNAME(Invoice_Payments.date_paid) as month, SUM(Invoice_Payments.paid_amount) AS total
FROM Invoice, Client, Invoice_Payments
WHERE Client.registered_id = 1
AND Client.id = Invoice.client_id
And Invoice.id = Invoice_Payments.invoice_id
AND date_paid IS NOT NULL
GROUP BY YEAR(Invoice_Payments.date_paid), MONTH(Invoice_Payments.date_paid)
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

mysql left-join multiple-tables

2
推荐指数
1
解决办法
4万
查看次数

从两个表中选择不同的值

我有两个相当大的数据库(每个+1百万行).两个表都具有相同的结构.

如何检查列中的每个值在两个表中是否唯一?

是否有一种
SELECT COUNT(DISTINCTcol ) FROM tbl
类型的查询会考虑BOTH表?

谢谢!

mysql count distinct multiple-tables

2
推荐指数
1
解决办法
1万
查看次数

MySQL 使用多个列/键连接 3 个表

mySQL 完全新手。因此,任何帮助将不胜感激。

我有3 张桌子- carts, users, actions

carts:
+------------+-------------+-------+
| cartId     | session_id  | userId| 
+------------+-------------+-------+

users:
+----------+-------------+
| usedId   | email       |
+----------+-------------+

actions:
+-------------+------------------+---- ---------+
| session_id  | impressionAction | impressionId | 
+-------------+------------------+-----+--------+
Run Code Online (Sandbox Code Playgroud)

在 中carts,每行有一个session_id

在 中users,每行有一个userId

在 中,每个会话的所有操作actions都有多个行。session_id

我希望JOIN这三个表的输出类似于

+------+-------------+--------+------------------+--------------+-------+
userId | session_id  | cartId | impressionAction | impressionId | email |
+------+-------------+--------+------------------+--------------+-------+
Run Code Online (Sandbox Code Playgroud)

每个userId和有多行session_id;本质上是一个扁平化的文件。我想如果我们JOIN …

mysql sql join key multiple-tables

2
推荐指数
1
解决办法
2万
查看次数

如何使用 django-tables2 在一个视图中显示多个表?

使用 djt2 v0.15/dj1.6/pyth2.6.6

多个表的 djt2 doc 视图文件示例:

def people_listing(request) :

    config = RequestConfig(request)
    table1 = PeopleTable(Person.objects.all(), prefix="1-")
    table2 = PeopleTable(Person.objects.all(), prefix="2-")
    config.configure(table1)
    config.configure(table2)
    return render(request, "people_listing.html",
        {"table1": table1, "table2": table2})
Run Code Online (Sandbox Code Playgroud)

首先,该示例对于引用的“table1”、“table2”参数似乎不正确。我的测试显示定义名称“people_list”需要在引号中使用,至少在单个表上。此外,为什么有人想将同一张表显示两次?这是一个坏例子吗?这是我的应用程序尝试使用这种结构:

def AvLabVw(request):

    config = RequestConfig(request)
    cmutbl = CmuTable(CmuVersion.objects.all(), prefix="1-")
    simtbl = SimTable(Simulator.objects.all(), prefix="2-")
    config.configure(cmutbl)
    config.configure(simtbl)
    return render(request, "AvRelInfo.html", {"AvLabVw":cmutbl, "AvLabVw":simtbl})
Run Code Online (Sandbox Code Playgroud)

url 文件在 AvLabVw 上选取,html 模板使用 render_table。

{% render_table AvLabVw %}
Run Code Online (Sandbox Code Playgroud)

此代码所发生的情况是仅仍然显示一个表,以返回渲染行上的最后一个表为准。

在文档的其他地方,它说需要使用具有 get_context_data 的 SingleTableView ,我还没有弄清楚......

我尝试过这种风格的实现,我认为它需要一个表对象和一个列表对象?

视图.py

从 django_tables2 导入视图
从 django_tables2 导入 SingleTableView
从 django_tables2 导入 SingleTableMixin …

python view multiple-tables django-tables2

2
推荐指数
1
解决办法
9453
查看次数