是否可以使用AND与三个表并使用左连接/内连接

时间:2016-12-03 14:14:58

标签: sql

我需要一个非常奇怪的问题。我希望你们有才华的人会喜欢这个问题(或者对你来说这可能是一件容易的事:))。

这是我用来从三个表中返回值的查询

   select  listing.*
   , sum(review.rNumber) as nor
   , count(review.rNumber) as total
   , users.username from listing  
   where
   left join review on listing.lid=review.lID
   inner join users on users.uid=listing.cuid
   group by listing.lid

现在,在此查询中,我想使用其他过滤器。它返回listing table的所有值,但我想使用WHERE cat='Hair' or something

返回所有值

我不知道如何在此查询中插入线索的地方..如果可行,请告诉我。 感谢

2 个答案:

答案 0 :(得分:2)

如果您希望过滤器在组之前应用:

| _id |   nome |
|-----|--------|
|   1 | test 1 |
|   2 | test 2 |

如果你想要它,你可以使用"拥有"代替:

select listing.*, sum(review.rNumber) as nor, count(review.rNumber) as total, users.username from listing 
left join review on listing.lid=review.lID
inner join users on users.uid=listing.cuid
where cat='Hair'
group by listing.lid

答案 1 :(得分:1)

您的查询应如下所示。

<android.support.v7.widget.CardView  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:layout_margin="5dp"
card_view:cardBackgroundColor="#212121"
card_view:cardCornerRadius="2dp"
card_view:contentPadding="10dp"
card_view:cardElevation="20dp"
card_view:cardPreventCornerOverlap="true">

    <!--your layout contents ...-->
    <RelativeLayout
        android:id="@+id/activity_story"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#212121">
        <ImageView
            android:id="@+id/StoryImageView"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:src="@mipmap/ic_launcher"/>

        <EditText
            android:id="@+id/storyTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/choiceButton1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/StoryImageView"
            android:background="@null"
            android:cursorVisible="false"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:lineSpacingMultiplier="1.2"
            android:paddingLeft="30dp"
            android:paddingRight="30dp"
            android:paddingTop="15dp"
            android:text="TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              TEXT TEXT TEXT
              "
            android:textColor="#9E9E9E"
            android:textSize="16sp"
            tools:textColor="#9E9E9E"/>

        <Button
            android:id="@+id/choiceButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/choiceButton2"
            android:layout_marginTop="3dp"
            android:background="#212121"
            android:text="button1"
            android:textColor="#b71c1c"/>

        <Button
            android:id="@+id/choiceButton2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="11dp"
            android:layout_marginTop="3dp"
            android:background="#212121"
            android:text="button2"
            android:textColor="#b71c1c"/>
    </RelativeLayout>
</android.support.v7.widget.CardView>

首先,您需要关注

  • 选择
  • 其中
  • 分组依据

其次,如果您使用group by,则不能选择任何不在聚合函数或group by中的列。因此,列出。*无法完成。如果您需要这些值,请将它们放在两个组中并选择。